Özel Profil Dizeleri genellikle kullanıcıya özel bilgileri daha sonra kullanmak üzere uygulama/belge dışında depolamak için kullanılır.
Örneğin, en son içerikle ilgili bilgileri bir iletişim kutusunda/KullanıcıFormu'nda saklayabilirsiniz,
bir fatura şablonu için bir çalışma kitabının kaç kez açıldığı veya son kullanılan fatura numarası.
Bilgiler, yerel sabit diskte veya paylaşılan bir ağ klasöründe bir INI dosyasında saklanabilir.
Bir INI dosyası sıradan bir metin dosyasıdır ve içerik şöyle görünebilir:
[KİŞİYE ÖZEL]
Soyadı=Doe
Ad=John
Doğum tarihi=1.1.1960
BenzersizSayı=123456
Her kullanıcı için Özel Profil Dizeleri de Kayıt Defterinde saklanabilir.
Excel'in, Word (System.PrivateProfileString) gibi INI dosyalarını okumak ve bunlara yazmak için yerleşik bir işlevi yoktur.
bu yüzden bunu kolay bir şekilde yapmak için birkaç API işlevine ihtiyacınız var.
Burada, Özel Profil Dizeleri içeren bir INI dosyasına yazmak ve bu dosyadan okumak için örnek makrolar verilmiştir.
Const IniFileName As String = "C:\FolderName\UserInfo.ini"
' okumak/yazmak istediğiniz bilgileri içeren dosyanın yolu ve dosya adı
Özel Bildirme İşlevi GetPrivateProfileStringA Lib _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strDefault As String, _ ByVal strReturnedString As String, _ ByVal lngSize As Long, ByVal strFileName As Yazma Özel DosyaAdı As LiVal strFileName As Yazma _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strString As String, _ ByVal strFileNameAs String) As Long Private Function WritePrivateProfileString32(ByVal strFileName As String, _ ByVal strSection As String, _ ByVal strSection As ,K) ByVal strValue As String) As Boolean Dim lngValid As Long On Hata Devam Et Sonraki lngValid = WritePrivateProfileStringA(strSection, strKey, _ strValue, strFileName) Eğer lngValid > 0 Sonra WritePrivate EndProfileString32 = Hatada Doğru , _ ByVal strSection As String, ByVal strKey As String, _ Opsiyonel strDefault) As String Dim strReturnStri ng As String, lngSize As Long, lngValid As Long On Hata Devam Ediyor Eğer IsMissing(strDefault) Sonra Devam Et strDefault = "" strReturnString = Space(1024) lngSize = Len(strReturnString) lngValid = GetPrivateProfileStringA(strSection, strDefault, _strReturn, strDefault = "" lngSize, strFileName) GetPrivateProfileString32 = Left(strReturnString, lngValid) On Error GoTo 0 End Function ' aşağıdaki örnekler, aktif sayfadaki B3:B5 aralığının ' Soyadı, Adı ve Doğum Tarihi hakkında bilgi içerdiğini varsayar. IniFileName dosyası Değilse WritePrivateProfileString32(IniFileName, "KİŞİSEL", _ "Soyadı", Aralık("B3").Value) Sonra MsgBox "Kullanıcı bilgisi " & IniFileName, _ vbExclamation, "Klasör yok! " Exit Sub End If WritePrivateProfileString32 IniFileName, "KİŞİSEL", _ "Lastname", Range("B3").Value WritePrivateProfileString32 IniFileName, "KİŞİSEL", _ "Firstname", Range("B4").Value WritePrivateProfileString32 KİŞİSELDosyaAdı", " , _ "Birthdate", Range("B5").Value End Sub Sub ReadUserInfo() ' IniFileName dosyasındaki bilgileri okur If Dir(IniFileName) = "" Then Exit Sub Range("B3").Formula = GetPrivateProfileString32(IniFileName , _ "KİŞİSEL", "Soyadı") Range("B4").Formula = GetPrivateProfileString32(IniFileName, _ "KİŞİSEL", "Ad") Range("B5").Formula = GetPrivateProfileString32(IniFileName, _ "KİŞİSEL", "Birthdate") End Sub ' aşağıdaki örnek, etkin sayfadaki D4 aralığının ' benzersiz sayı hakkında bilgi içerdiğini varsayar Sub GetNewUniqueNumber() Dim UniqueNumber As Long If Dir(IniFileName) = "" Then Exit Sub UniqueNumber = Hatada 0 Sonraki UniqueNumber = CLng(GetPrivateProfileString32(IniFileName, _ "KİŞİSEL", "BenzersizNumber")) Hatada Git 0 Range("D4").Formula = UniqueNumber + 1 WritePrivateProfileString32(IniFileName, "KİŞİSEL", _ "UniqueNumber", Range("D4").Value) Sonra MsgBox "Kullanıcı bilgisi " & IniFileName içine kaydedilemiyor , _ vbExclamation, "Klasör yok!" Exit Sub End If End Sub