Herbers Excel-Forum - das Archiv

Object Library per VBA ?

Bild

Betrifft: Object Library per VBA ?
von: frankyb

Geschrieben am: 16.02.2005 13:35:30
Hallo Exceler,
habe eine grundsätzliche Frage: kann man per Makro einen Verweis im Excelmodul setzen?
Unten aufgeführtes Makro (habe ich von Hans) benötigt einen Verweis auf die „Microsoft Word Object Library“.
Nun wird die Prozedur auf verschiedenen Excel- bzw. Wordversion (8,9,10) verwendet und ich kann vom User nicht erwarten, dass er den Verweis entsprechend manuell ändert (könnte er auch nicht – weil Projekt ist geschützt).
Hat hier jemand einen Tipp oder eine Idee wie man das (anders) lösen könnte ?
Danke und Gruß
Frank
Sub OpenWordDoc()
Sheets("Steuerung").Activate
Dim WordObj As Word.Application
Dim WordDoc As Word.Document
On Error GoTo w
AppActivate "Microsoft Word"
Set WordObj = Word.Application
GoTo n
w: Set WordObj = CreateObject("Word.Application")
n: Set WordDoc = WordObj.Documents.Open(Range("F43").Value) 'Pfad-WordDatei
Sheets("Steuerung").Activate
Worksheets("Steuerung").Range("M2:N16").Copy  'Datenbereich
WordDoc.Range.Paste
WordDoc.SaveAs Range("E66").Value 'Speicher Pfad
WordDoc.Application.Run "Makro1"  'Wordmakro
WordObj.Visible = True
WordDoc.Application.Activate
End Sub

Bild

Betrifft: AW: Object Library per VBA ?
von: Ulf

Geschrieben am: 16.02.2005 13:39:51
Wenn du LateBinding(entspricht der Syntax Set WordObj = CreateObject("Word.Application")
verwendest, ist kein Verweis erforderlich.
dann müssen die Objektvariablen aber auch neutral deklariert sein, also nicht:
Dim WordObj As Word.Application
Dim WordDoc As Word.Document
sondern:
Dim WordObj As Object
Dim WordDoc As Object
Ulf
Bild

Betrifft: AW: Object Library per VBA ? Aber ?
von: frankyb

Geschrieben am: 16.02.2005 14:19:07
Hallo Ulf,
danke für die Antwort.
Leider reichen meine Kenntnisse nicht aus um das in der Praxis umzusetzen.
Was meinst du mit LateBinding und wie sehe das im Code aus?
Danke
Frank

... LateBinding(entspricht der Syntax Set WordObj = CreateObject("Word.Application")...
Bild

Betrifft: AW: Object Library per VBA ? Aber ?
von: Ulf

Geschrieben am: 16.02.2005 15:45:51
Beispiel:
Option Explicit
Sub Worddatei_oeffnen()
Const FName As String = "C:\Test.doc"
Dim appWord As Object
If Dir(FName) <> "" Then
Set appWord = CreateObject("Word.Application")
appWord.Visible = True
appWord.Documents.Open Filename:=FName
Set appWord = Nothing
Else
MsgBox "Das Dokument " & FName & " wurde nicht gefunden!", 64, "Hinweis..."
End If
End Sub

Ulf
 Bild