L
Sorry wenn ich noch einmal darauf zurückkomme
aber bei Excel scheint es doch etwas schwieriger zu sein :
Ich hab da folgendes gefunden für VB:
' Dieses Beispiel zeigt, wie man die Object Library benutzt
' (early binding). Möchte man "late binding" verwenden, stehen die
' Werte und Datentypen dabei.
' Ein paar Variablen
Dim xclApp As Excel.Application ' As Object
Dim boolAppLoad As Boolean
Dim xclWbk As Excel.Workbook ' As Object
Dim boolWbkLoad As Boolean
Dim xclSht As Excel.Worksheet ' As Object
Dim strFile As String
' Fehlerbehandlungsverhalten setzen
On Error Resume Next
' Alte Fehler löschen
Err.Clear
' Datei benennen
strFile = "C:\My Files\zeit.xls"
' Excel referenzieren
Set xclApp = GetObject(, "Excel.Application")
' Ist ein Fehler aufgetreten (Excel war dann nicht geladen)?
If (Err.Number <> 0) Then
' Fehler löschen
Err.Clear
' Excel war nicht geladen
boolAppLoad = True
' Excel jetzt starten
Set xclApp = CreateObject("Excel.Application")
Else
' Excel war geladen
boolAppLoad = False
End If
' Workbook referenzieren
Set xclWbk = xclApp.Workbooks.Item(strFile)
' Ist ein Fehler aufgetreten (Workbook war dann nicht geöffnet)?
If (Err.Number <> 0) Then
' Fehler löschen
Err.Clear
' Workbook war nicht geöffnet
boolWbkLoad = True
' Workbook öffnen
Set xclWbk = xclApp.Workbooks.Open(strFile, _
, , , , , , , , , , , False)
Else
' Workbook war geöffnet
boolWbkLoad = False
End If
' Erste Tabelle referenzieren
Set xclSht = xclWbk.Worksheets(1)
' Hier jetzt die Verarbeitung
[...]
' Referenz entfernen
Set xclSht = Nothing
' Mußte das Workbook geladen werden?
If (boolWbkLoad) Then
' Ja, Workbook speichern schließen
xclWbk.Close xlSaveChanges ' xlSaveChanges = 1
End If
' Referenz entfernen
Set xclWbk = Nothing
' Mußte Excel geladen werden?
If (boolAppLoad) Then
' Ja, Excel beenden
xclApp.Quit
End If
' Referenz entfernen
Set xclApp = Nothing
Wenn ich das richtig verstanden habe muss ich jetzt entsprechend die
Befehle und Werte mittels invoke senden .
Nur habe ich jetzt drei Objekte :
Application
Workbook
Worksheet
Ich krieg das irgendwie nicht zusammen.
::CreateObject(OLESTR("Excel.Application"), &pdispWord);
Invoke(pdispWord, DISPATCH_METHOD, NULL, NULL, NULL,
OLESTR("Workbooks.Add"), NULL);
Invoke(pdispWord, DISPATCH_METHOD, NULL, NULL, NULL,
OLESTR("Worksheets(1)"), NULL);
Vielleicht hast Du ja noch einen kleinen Tip