Re: DLL nicht gefunden Word 9.0/10.0 Problem
23.09.2002 00:37:52
Thomas Risi
Hallo RolandIm Prinzip funktioniert es auch ohne diese Verweise. Man hat dann aber nicht den Vorteil der "frühen Bindung", und es steht kein Intellisense bzw. der Objekt-Manager zur Verfügung.
Man kann aber bei der Programmerstellung den Verweis setzen, und nach der Fertigstellung wieder entfernen. Der Zugriff, auf z.B. Word, erfolgt dann mit der s.g. "späten Bindung". Hier wird dann bei Programmstart eine Verbindung zu Word hergestellt.
In VB gibt es hierzu die 'GetObject'-Methode, mit der ggf. eine Instanz von Word erstellt wird. Zur Referenzierung wird ein versionsunabhängiger Bezeichner (ProgID) verwendet, der automatisch die richtige Wordversion startet. Im Fall von Word heißt die ProgID 'Word.Application'. Zu finden ist diese ProgID in der Registry unter 'HKEY_CLASSES_ROOT\Word.Application'. Dort kann man auch angeben, welche Word-Version zu starten ist, falls mehrere installiert sind.
Und so könnte ein solcher Start aussehen ...
Option Explicit#Const DEBUGGEN = 1
Dim Word As Object
Sub GetWord()
' Es wird versucht, auf eine bestehende Word-Instanz zuzugreifen.
'
On Error Resume Next
Set Word = GetObject(, "word.application")
' Überprüfen ob eine Instanz gefunden wurde ...
'
If Not Word Is Nothing Then
#If DEBUGGEN Then
MsgBox "Es wurde eine Instanz gefunden."
#End If
' ... sonst wird eine neue Instanz erstellt.
'
Else
Set Word = GetObject("", "word.application")
#If DEBUGGEN Then
MsgBox "Es wurde eine Instanz erstellt."
#End If
End If
Word.Visible = True
End Sub
Sub ClearWord()
Word.Quit
Set Word = Nothing
End Sub
Code eingefügt mit Syntaxhighlighter 1.15
Gruß
Thomas
Risi Thomas Softwareentwicklung