Súkromné profilové reťazce sa často používajú na ukladanie informácií o používateľoch mimo aplikácie/dokumentu na neskoršie použitie.
Môžete napríklad uložiť informácie o najnovšom obsahu do dialógového okna/UserForm,
koľkokrát bol otvorený zošit alebo posledné použité číslo faktúry pre šablónu faktúry.
Informácie je možné uložiť do súboru INI, buď na lokálny pevný disk, alebo do zdieľaného sieťového priečinka.
INI súbor je obyčajný textový súbor a obsah môže vyzerať asi takto:
[OSOBNÉ]
Priezvisko = Doe
Krstné meno = John
Dátum narodenia = 1.1.1960
UniqueNumber = 123456
Do registra je možné uložiť aj reťazce súkromných profilov pre každého používateľa.
Excel nemá vstavanú funkciu na čítanie a zápis do súborov INI, ako má Word (System.PrivateProfileString),
na to, aby ste to urobili jednoduchým spôsobom, potrebujete niekoľko funkcií API.
Tu sú príklady makier na zápis a čítanie zo súboru INI obsahujúceho reťazce súkromného profilu.
Const IniFileName As String = "C: \ FolderName \ UserInfo.ini"
„cesta a názov súboru k súboru obsahujúcemu informácie, ktoré chcete čítať/zapisovať
Súkromná deklaračná funkcia GetPrivateProfileStringA Lib _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strDefault As String, _ ByVal strReturnedString as String, _ ByVal lngSize As long, ByVal strFreNameRameA _ "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 ako reťazec) Ako booleovský Dim lngValid ako dlho pri chybe Pokračovať ďalej lngValid = WritePrivateProfileStringA (strSection, strKey, _ strValue, strFileName) Ak lngValid> 0 potom WritePrivateProfileString32 = True On Error GoTotrile ByProfil , _ ByVal strSection As String, ByVal strKey As String, _ Voliteľné 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 = vľavo (strReturnString, lngValid) Pri chybe GoTo 0 End Function 'nižšie uvedené príklady predpokladajú, že rozsah B3: B5 v aktívnom hárku obsahuje' informácie o priezvisku, krstnom mene a dátume narodenia Sub WriteUserInfo () 'uloží informácie do súbor IniFileName Ak nie WritePrivateProfileString32 (IniFileName, "PERSONAL", _ "Lastname", Range ("B3"). Hodnota) Potom MsgBox "Nie je možné uložiť informácie o používateľovi do" & IniFileName, _ vbExclamation, "Priečinok neexistuje! " Ukončite Sub End If WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Lastname", Range ("B3"). Hodnota WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Firstname", Range ("B4"). Hodnota WritePrivateProfileString32 I , _ "Dátum narodenia", Rozsah ("B5"). Hodnota Koniec Sub Sub ReadUserInfo () 'číta informácie zo súboru IniFileName If Dir (IniFileName) = "" Then Exit Sub Range ("B3"). Formula = GetPrivateProfileString32 (IniFileName , _ "PERSONAL", "Lastname") Rozsah ("B4"). Formula = GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "Firstname") Rozsah ("B5"). Formula = GetPrivateProfileString32 (IniFileName, _ "PERSONAL", „Dátum narodenia“) Koniec Sub 'v nižšie uvedenom príklade predpokladá, že rozsah D4 v aktívnom hárku obsahuje' informácie o jedinečnom čísle Sub GetNewUniqueNumber () Dim UniqueNumber As Long If Dir (IniFileName) = "" Then Exit Sub UniqueNumber = 0 On Error Pokračovať ďalej UniqueNumber = CLng (GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "UniqueNumber")) Pri chybe GoTo Rozsah 0 („D4“). Vzorec = UniqueNumber + 1 ak nie, writePrivateProfileString32 (IniFileName, „PERSONAL“, _ „UniqueNumber“, rozsah („D4“). Hodnota) Potom MsgBox „Nie je možné uložiť informácie o používateľovi do“ & IniFileName , _ vbExclamation, "Priečinok neexistuje!" Ukončiť Sub End If End Sub