Thomas Risi Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer - WebServices
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
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
Dim iniPath As String
Dim iniSection As String
Dim iniKey As String
Dim n As Long
Private Sub Workbook_BeforeClose(Cancel As Boolean)
iniClass.WritePrivateProfileString iniPath, iniSection, "LastUsedRange", _
ActiveCell.AddressLocal
iniClass.WritePrivateProfileString iniPath, iniSection, "Counter", n
Set iniClass = Nothing
End Sub
Private Sub Workbook_Open()
iniPath = "C:\Excel\xlTest.ini"
iniSection = "TEST"
Set iniClass = New clsIni
On Error Resume Next
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
© 2001 -
by Thomas Risi