Soubory soukromého profilu se často používají k ukládání informací specifických pro uživatele mimo aplikaci/dokument pro pozdější použití.
Můžete například uložit informace o nejnovějším obsahu do dialogového okna/UserForm,
kolikrát byl otevřen sešit nebo poslední použité číslo faktury pro šablonu faktury.
Informace lze uložit do souboru INI, a to buď na místní pevný disk, nebo do sdílené síťové složky.
INI soubor je obyčejný textový soubor a obsah může vypadat nějak takto:
[OSOBNÍ]
Příjmení = Doe
Jméno = John
Datum narození = 1.1.1960
UniqueNumber = 123456
Soukromé profilové řetězce pro každého uživatele lze také uložit do registru.
Excel nemá žádnou vestavěnou funkci pro čtení a zápis do souborů INI, jako má Word (System.PrivateProfileString),
takže potřebujete několik funkcí API, abyste to mohli udělat snadným způsobem.
Zde jsou ukázková makra pro zápis a čtení ze souboru INI obsahující řetězce soukromého profilu.
Const IniFileName As String = "C: \ FolderName \ UserInfo.ini"
'cesta a název souboru k souboru obsahujícímu informace, které chcete číst/zapisovat
Funkce Private Declare GetPrivateProfileStringA Lib _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strDefault As String, _ ByVal strReturnedString As String, _ ByVal lngSize As Long, ByVal strFreNamerame As String _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strString As String, _ ByVal strFileNameName As String) As Long Private Function WritePrivateProfileString32 (ByVal strFileName As String, _ ByVal strSection As String, ByVal ByVal strValue As String) As Boolean Dim lngValid As Long On Error Resume Next lngValid = WritePrivateProfileStringA (strSection, strKey, _ strValue, strFileName) If lngValid> 0 Then WritePrivateProfileString32 = True On Error GoTotrile ByProfile , _ ByVal strSection As String, ByVal strKey As String, _ Volitelné strDefault) As String Dim strReturnStri ng As String, lngSize As Long, lngValid As Long On Error Resume Next If IsMissing (strDefault) Then strDefault = "" strReturnString = Space (1024) lngSize = Len (strReturnString) lngValid = GetPrivateProfileStringA (strSection, strKe, lngSize, strFileName) GetPrivateProfileString32 = Left (strReturnString, lngValid) On Error GoTo 0 End Function 'níže uvedené příklady předpokládají, že rozsah B3: B5 v aktivním listu obsahuje' informace o příjmení, jménu a datu narození Sub WriteUserInfo () 'ukládá informace do soubor IniFileName Pokud není WritePrivateProfileString32 (IniFileName, "PERSONAL", _ "Příjmení", Rozsah ("B3"). Hodnota) Pak MsgBox "Nelze uložit informace o uživateli do" & IniFileName, _ vbExclamation, "Složka neexistuje! " Ukončete Sub End If WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Lastname", Range ("B3"). Hodnota WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Firstname", Range ("B4"). Hodnota WritePrivateProfileString32 I , _ "Datum narození", Rozsah ("B5"). Hodnota Konec Sub Sub ReadUserInfo () 'čte informace ze souboru IniFileName If Dir (IniFileName) = "" Then Exit Sub Range ("B3"). Formula = GetPrivateProfileString32 (IniFileName , _ "PERSONAL", "Lastname") Range ("B4"). Formula = GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "Firstname") Range ("B5"). Formula = GetPrivateProfileString32 (IniFileName, _ "PERSONAL", „Datum narození“) End Sub 'níže uvedený příklad předpokládá, že rozsah D4 v aktivním listu obsahuje' informace o jedinečném čísle Sub GetNewUniqueNumber () Dim UniqueNumber As Long If Dir (IniFileName) = "" Then Exit Sub UniqueNumber = 0 On Error Pokračovat Další UniqueNumber = CLng (GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "UniqueNumber")) Při chybě GoTo 0 Rozsah („D4“). Vzorec = UniqueNumber + 1 Pokud není WritePrivateProfileString32 (IniFileName, „PERSONAL“, _ „UniqueNumber“, Rozsah („D4“). Hodnota) Poté MsgBox „Nelze uložit informace o uživateli do“ & IniFileName , _ vbExclamation, "Složka neexistuje!" Ukončit Sub End If End Sub