Thomas Risi Softwareentwicklung

clsIni (Klasse)

Hier finden Sie eine Klasse um Ini-Dateien zu Schreiben und zu Lesen. Fügen Sie den Code für die Klasse in ein Klassenmodul ein, und benennen Sie das Modul mit clsIni. Diese Klasse läßt sich unverändert in allen VB/VBA-Anwendungen nutzen.

Unten finden Sie ein Beispiel, wie ein Excel-Workbook beim Öffnen auf die Einträge der Ini-Datei zugreift, und beim Schließen die Einträge aktualisiert, bzw. neue Einträge hinzufügt.

Wie man eine ini-Datei erstellt? Erstellen Sie einfach eine Textdatei (z.B. mit Notepad) und speichern Sie diese mit der Dateiendung *.ini ab.


Code für Klassenmodul ( nicht verändern ! )

Option Explicit Private Declare Function GetPrivateProfileString_ Lib "kernel32" _ Alias "GetPrivateProfileStringA" ( _ ByVal lpApplicationName As String, ByVal lpKeyName As Any, _ ByVal lpDefault As String, ByVal lpReturnedString As String, _ ByVal nSize As Long, ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileString_ Lib "kernel32" _ Alias "WritePrivateProfileStringA" ( _ ByVal lpApplicationName As String, ByVal lpKeyName As String, _ ByVal lpDefault As String, ByVal lpFileName As String) As Long ' Datei = Pfad zur ini-Datei ' Sektion = Zu ändernde Section ' Schlüssel = Zu ändernder Key Public Function GetPrivateProfileString( _ Datei$, Sektion$, Schlüssel$) As String Dim A As Long, Wert As String Wert = Space$(255) A = GetPrivateProfileString_(Sektion$, Schlüssel$, "", Wert$, Len(Wert$), Datei$) GetPrivateProfileString = Left$(Wert$, A&) End Function Public Function WritePrivateProfileString( _ Datei$, ByVal Sektion$, ByVal Schlüssel$, ByVal Wert$) Dim A As Long A = WritePrivateProfileString_(Sektion$, Schlüssel$, Wert$, Datei$) End Function

Beispiel-Code für Excel Workbook-Modul

Option Explicit Dim iniClass As clsIni ' Klasse einbinden Dim iniPath As String ' Pfad zur ini-Datei Dim iniSection As String ' Zu ändernde Sektion Dim iniKey As String ' zu ändernder Schlüssel Dim n As Long ' Zähler Private Sub Workbook_BeforeClose(Cancel As Boolean) iniClass.WritePrivateProfileString iniPath, iniSection, "LastUsedRange", _ ActiveCell.AddressLocal iniClass.WritePrivateProfileString iniPath, iniSection, "Counter", n Set iniClass = Nothing ' Instanz beenden End Sub Private Sub Workbook_Open() iniPath = "C:\Excel\xlTest.ini" iniSection = "TEST" Set iniClass = New clsIni ' Instanz erstellen On Error Resume Next ' Initialisierung Range(iniClass.GetPrivateProfileString(iniPath, iniSection, "LastUsedRange")).Select n = iniClass.GetPrivateProfileString(iniPath, iniSection, "Counter") n = n + 1 MsgBox "Diese Datei wurde bereits " & n & " mal geöffnet." End Sub

Bewerten Sie bitte dieses Programm.
1 2 3 4 5
Weniger nützlich Sehr nützlich
Bitte teilen Sie uns mit, warum Sie das Programm so bewertet haben. (optional)