Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel und Ini-Datei

Forumthread: Excel und Ini-Datei

Excel und Ini-Datei
22.05.2002 16:54:51
Peter
Hallo,

ich habe mit Word97 (VBA-Makro) eine Ini-Datei erstellt. Kann ich diese Ini-Datei auch mit Excel97 auslesen um mit den dortigen Werten Variablen in Excel zu füllen ?

Kann ich aus Word97 eine vorhandene Exceltabelle starten und wenn man die ini-datei verwenden kann gleich die Ini-datei beim start zur Verfügung stellen und die Variablen in meinem Excel97 Makro mit leben zu füllen ?

Gruß

Peter

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Excel und Ini-Datei
22.05.2002 17:02:34
PeterA
Hallo Peter

Ein Codebeispiel zum Auslesen einer TXT Datei.
Falls du Probleme beim Anpassen an dein Programm hast melde
dich noch mal.

PeterA


Die elegante Methode ...
22.05.2002 23:15:15
Thomas Risi
Hallo Peter

Hier bietet sich eine Klasse zur Verwendung an ...

Füge in das Excel-Projekt eine Klasse ein, und benenne sie mit 'clsIni'. Dann fügst Du folgenden Code ein.

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 StringAs Long
 
Private Declare Function WritePrivateProfileString_ Lib "kernel32" _
 Alias "WritePrivateProfileStringA" ( _
 ByVal lpApplicationName As String, _
 ByVal lpKeyName As String, _
 ByVal lpDefault As String, _
 ByVal lpFileName As StringAs Long


' Datei = Pfad zur ini-Datei
' Sektion = Zu ändernde Section
' Schlüssel = Zu ändernder Key

Public Function GetPrivateProfileString(Datei$, Sektion$, Key$) As String
Dim A As Long, Wert As String
    
    Wert = Space$(255)
    A = GetPrivateProfileString_(Sektion$, Key$, "", Wert$, Len(Wert$), Datei$)
    GetPrivateProfileString = Left$(Wert$, A&)
    
End Function

Public Function WritePrivateProfileString(Datei$, ByVal Sektion$, ByVal Key$, ByVal Wert$)
Dim A As Long
    
    A = WritePrivateProfileString_(Sektion$, Key$, Wert$, Datei$)
    
End Function




In einem normalen Modul erstellst Du dann nur noch eine Instanz der Klasse und kannst auf deren Methoden zugreifen.

Option Explicit

Dim iniClass As clsIni  ' Klasse einbinden


Sub Test_Schreiben()
Dim Path$: Path = "C:\Excel\TestXL.ini"
Dim Section$: Section = "TEST"
Dim Key$: Key = "LastUsedRange"
    
    Set iniClass = New clsIni   ' Instanz erstellen
    
    iniClass.WritePrivateProfileString Path, Section, Key, "C8"
    iniClass.WritePrivateProfileString Path, Section, "HelloMsg", "Hi, wie geht's ?"
    
    Set iniClass = Nothing
    
End Sub


Sub Test_Lesen()
Dim Path$: Path = "C:\Excel\TestXL.ini"
Dim Section$: Section = "TEST"
Dim Key$: Key = "LastUsedRange"
    
    Set iniClass = New clsIni   ' Instanz erstellen
    
    MsgBox iniClass.GetPrivateProfileString(Path, Section, "HelloMsg")
    
    Set iniClass = Nothing
    
End Sub

     Code eingefügt mit Syntaxhighlighter 1.13




Um alle Daten beim Start der excel-Tabelle zur Verfügung zu haben, liest Du diese am Besten im 'WorkbookOpen'-Ereignis aus. Das Interessante an der 'Klasse' ist, daß man sie nur einmal erstellt, und unverändert in andere Projekte (Excel, Word, Access, usw.) übernehmen kann.


Gruß

Thomas

------------------------------
Internet: Homepage

eMail: Thomas.Risi@t-online.de
------------------------------


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige