ich habe eine ini-Datei, bei der alle benötigten Informationen untereinander
stehen. Mit welcher Routine lese ich diese am besten in Variablen ein, um
sie in word oder Excel zu verwenden? sicherlich gibt es dafür doch schon
fertige Routinen?
Tobias
siehe dazu den Artikel "Kombinationsfeld (ComboBox) aus einer INI-Datei
laden" in den Word FAQs von Silvia Widmer unter
http://mypage.bluewin.ch/reprobst/WordFAQ/Defaults.htm#Defaults8 .
Viele Grüße vom Niederrhein
Lutz
"Lutz Gentkow" <lgen...@t-online.de> schrieb im Newsbeitrag
news:3BCC6FBA...@t-online.de...
> siehe dazu den Artikel "Kombinationsfeld (ComboBox) aus einer INI-Datei
> laden" in den Word FAQs von Silvia Widmer unter
> http://mypage.bluewin.ch/reprobst/WordFAQ/Defaults.htm#Defaults8 .
Danke für den Tip.
Eigentlich möchte ich ja jeden Eintrag aus der ini-Datei in eine eigene
Variable speichern, aber trotzdem hab ich in der FAQ des Rätsels Lösung
gefunden:
System.PrivateProfileString(FileName:="INI-Datei.ini", _
Section:="Section", Key:="Key")
Dies scheint aber nur in Word-VBA zu funktionieren. Gibr es auch etwas
entsprechendes für Excel-VBA?
Tobias
hätte ich vielleicht schon in meinem ersten Posting dazuschreiben
sollen: für Excel ist eine eigene NG verfügbar, dort werden auch Fragen
zu Excel-Makros beantwortet: microsoft.public.de.excel.
ich hoffe das mein Kommentar noch ein wenig helfen wird.
Ich habe es bei mir mit einem verstecktem Tabelenblatt gemacht.
Die Daten importiert und dann ausgelessen.
Ein kleiner TIP mit dem Befehl:
System.PrivateProfileString(FileName:="INI-Datei.ini", _
Section:="Section", Key:="Key")
Bei dem FileName am besten einen kompletten pfad anzugeben.
Wenn du eine andere Lösung hast, würde ich mich über deine Antwort freuen.
MfG
_______________________________
Walerij Riffel
- Win 2000, SP 2
- Office 2000, SP2
- VBA 6.0 incl. Developer Edition
"Walerij Riffel" <w...@all-to-do.de> schrieb im Newsbeitrag
news:eo9$iv9VBHA.2108@tkmsftngp05...
> Wenn du eine andere Lösung hast, würde ich mich über deine Antwort freuen.
Ja, ich hab des Rätsels Lösung gefunden. Das ganze geht über die Deklaration
der API Funktion GetPrivateProfileString.
Ich schicke dir ein Beispiel per mail, da wir hier in der Word VBA Newsgroup
etwas off Topic sind.
Tobias
> Wenn du eine andere Lösung hast, würde ich mich über deine Antwort freuen.
oder so (alles in eine Userform packen mit 4 Buttons):
Dim Dateiname As String
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 Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Private Function WriteINI(Dateiname As String, DieSektion As String, _
DerEintrag As String, Wert As String) As Long
WriteINI = WritePrivateProfileString(DieSektion, DerEintrag, _
Wert, Dateiname)
End Function
Private Function GetINIString(Dateiname As String, _
DieSektion As String, DerEintrag As String) As String
Temp$ = String(255, 0)
x = GetPrivateProfileString(DieSektion, DerEintrag, "", _
Temp$, 255, Dateiname)
Temp$ = Left$(Temp$, x)
GetINIString = Temp$
End Function
Private Sub CommandButton1_Click()
x = WriteINI(Dateiname$, "SEKTION", "EINTRAG", "0815")
End Sub
Private Sub CommandButton2_Click()
s = GetINIString(Dateiname$, "Sektion", "Eintrag")
MsgBox s
End Sub
Private Sub CommandButton3_Click()
x = WritePrivateProfileString("Sektion", "Eintrag", ByVal 0&,
Dateiname $)
End Sub
Private Sub CommandButton4_Click()
x = WritePrivateProfileString("Sektion", ByVal 0&, ByVal 0&,
Dateiname $)
End Sub
Private Sub UserForm_Load()
Dateiname$ = App.Path
If Right(Dateiname$, 1) <> "\" Then Dateiname$ = Dateiname$ & "\"
Dateiname$ = Dateiname$ & "test.ini"
End Sub
--
Gruß
Christian
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Anworten bitte nur in diese NG und im Original-Thread
Ich beantworte generell keine Fragen per E-Mail!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~