Privaatprofiili stringe kasutatakse sageli kasutajapõhise teabe salvestamiseks väljaspool rakendust/dokumenti hilisemaks kasutamiseks.
Näiteks võite salvestada teavet uusima sisu kohta dialoogi/UserForm,
mitu korda töövihikut on avatud või arve malli jaoks viimati kasutatud arve number.
Teavet saab salvestada INI-faili, kas kohalikule kõvakettale või jagatud võrgu kausta.
INI-fail on tavaline tekstifail ja sisu võib välja näha umbes selline:
[PERSONAL]
Perekonnanimi = Kull
Eesnimi = Johannes
Sünnikuupäev = 1.1.1960
Unikaalne number = 123456
Registrisse saab salvestada ka iga kasutaja privaatprofiili stringe.
Excelil pole sisseehitatud funktsioone INI-failide lugemiseks ja kirjutamiseks, näiteks Wordil (System.PrivateProfileString),
nii et teil on vaja paar API-funktsiooni, et seda hõlpsalt teha.
Siin on näidismakrod, mis on mõeldud privaatprofiili stringe sisaldava INI-faili kirjutamiseks ja sealt lugemiseks.
Const IniFileName As String = "C: \ FolderName \ UserInfo.ini"
'tee ja failinimi failini, mis sisaldab teavet, mida soovite lugeda/kirjutada
Privaatne deklareerimisfunktsioon GetPrivateProfileStringA Lib _ "Kernel32" (ByVal strSection Stringina, _ ByVal strKey As String, ByVal strDefault Stringina, _ ByVal strReturnedString stringina, _ ByVal lngSize As Long, ByVal strFileName Asutus String String String _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strString As String, _ ByVal strFileNameName As String) Nagu pikk privaatfunktsioon WritePrivateProfileString32 (ByVal strFileName As String, _ ByVal strSection String, String ByVal strValue kui string) Nagu Boolean Dim lngValid nii kaua, kui viga jätkub Järgmine lngValid = WritePrivateProfileStringA (strSection, strKey, _ strValue, strFileName) Kui lngValid> 0 Siis WritePrivateProfileString32 = Tõeline viga Viga GoTo Funktsiooni stringi funktsioon , _ ByVal strSection kui string, ByVal strKey kui string, _ valikuline strDefault) Stringina Dim strReturnStri ng kui string, lngSize nii kaua, lngValid kui kaua viga jätka järgmine, kui IsMissing (strDefault) Siis strDefault = "" strReturnString = Space (1024) lngSize = Len (strReturnString) lngValid = GetPrivateProfileStringA (strSection, strKring, lngSize, strFileName) GetPrivateProfileString32 = Vasakule (strReturnString, lngValid) On GoTo 0 End Function "tõrke korral järgnevates näidetes eeldatakse, et vahemik B3: B5 aktiivsel lehel sisaldab" teavet perekonnanime, eesnime ja sünniaja alamkirjutuse kohtaUserInfo () "salvestab teabe faili IniFileName If Not WritePrivateProfileString32 (IniFileName, "PERSONAL", _ "Perekonnanimi", vahemik ("B3"). Väärtus) Siis MsgBox "Ei saa kasutajaandmeid salvestada kausta & IniFileName, _ vbExclamation," Kausta pole olemas! " Välju alaotsast, kui WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Perekonnanimi", vahemik ("B3"). Väärtus WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Firstname", Range ("B4"). Väärtus WritePrivateProfileStAL "In , _ "Sünnikuupäev", vahemik ("B5"). Väärtus Lõpp Alam alam ReadUserInfo () 'loeb teavet failist IniFileName If Dir (IniFileName) = "" Siis välju alamvahemikust ("B3"). Valem = GetPrivateProfileString32 (IniFileName) , _ "PERSONAL", "Perekonnanimi") vahemik ("B4"). Valem = GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "Eesnimi") Vahemik ("B5"). Valem = GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "Sünnikuupäev") Lõpu alam "Allolev näide eeldab, et aktiivse lehe vahemik D4 sisaldab teavet unikaalse numbri kohta Sub GetNewUniqueNumber () Dim UniqueNumber As Long Kui Dir (IniFileName) =" "Siis välju alamest UniqueNumber = 0 Viga Jätka järgmist UniqueNumber = CLng (GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "UniqueNumber")) Viga GoTo 0 Vahemik ("D4"). Valem = UniqueNumber + 1, kui ei kirjuta , _ vbTõend: "Kausta pole olemas!" Välju alaotsast Kui lõpeb alam