vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Call-Anweisung von Word 2010 zu VB6 schlägt fehl 
Autor: T_Mauritz
Datum: 25.03.15 09:41

Hallo,
bei der Übergabe eines Parameters von Word 2010 zu einer VB6-Applikation mittels Call-Anweisung erscheint die Fehlermeldung "Objektvariable oder With-Blockvariable wurde nicht festgelegt".
Beim Debuggen im Word-Dokument wird auf das Statement "Call g_Adresse.gb_Aktionausfuehren(1)" verwiesen.
Wir rufen von einer VB6-Applikation eine Word 2010 Dokumentenvorlage (DOTM) auf und speichern das Dokument im Word 2010-Format DOCM ab.
Das DOCM-Format wird benötigt für die erneute Bearbeitung (Korrekturen etc.). Die Steuerung des Word-Dokuments erfolgt ausschließlich aus der VB6-App und nicht im Word Dokument (Speichern, Senden etc.).
Dafür wurde die Word-Dokumentenvorlage gehärtet:
- Nur die Menübefehle sind noch aktiv, die für die Bearbeitung des Word-Dokuments benötigt werden.
- Allen nicht benötigten HotKeys wurden entfernt.
- Alle Standard-Ribbons werden ausgeblendet.
- Ein neues Ribbon wurde mittels XML-File erstellt. Das Ribbon enthält ein paar Buttons (Verlassen, Speichern, Drucken etc.) und ein paar Word-interne Ribbon-Befehle. Je nachdem, welcher Button in dem Ribbon gedrückt wurde, wird ein kleines Makro im Word-Dokument ausgeführt.
Die Button-Makros im Word-Dokument haben den gleichen Aufbau und übergeben im Prinzip nur einen Parameter an die VB6-Applikation. Dieser Parameter wird von der VB6-Applikation ausgewertet und die entsprechende Weiterverarbeitung wird aus der VB6-App gestartet.

Beispielmakro in der Word 2010 Dokumentenvorlage (DOTM):
Puiblic Sub Main(control as IRibbonControl)
Dim objword As Word.Application
Dim dic As Word.Document
Set doc = ActiveDocument
System.Cursor = wdCursorWait
g_Zustand = 0
'Aktion 1 = Speichern
Call g_Adresse.gb_Aktionausfuehren(1)    <<<--- Übergabe des Parameters ( _
  Zahl in der Klammer) 
System.Cursor = wdCursorNormal
Set g_Adresse = Nothing
End Sub
Die beiden öffentlichen Variablen 'g_Adresse' und 'g_Zustand' sind in einem eigenen Modul im Deklarationsbereich deklariert (z.B.: Public g_Adresse as Object).
Im VB-Project ist der Verweis auf die 'Microsoft Office 14.0 Object Library' gesetzt.
Das Word-Dokument wird auch korrekt erstellt, nur die besagten Buttons funktionieren nicht.

Hat jemand eine Idee, wasch ggf. in den Makros innerhalb der Word-Dokumentenvorlage anpassen muss, damit die Rückgabe der Steuerung von Word 2010 an de VB6-App funktioniert?

Eine interessante Nebenerscheinung habe ich noch entdeckt:Wenn ich das Speicherformat in der VB6-App von DOCM (FileFormat:=wdFomatXMLDocumentMacroEnabled) auf DOTM (FileFormat:=wdFomatXMLTemplateMacroEnabled) umstelle, funktioniert die Steuerung und Übergabe von Word 2010 an die VB6-App einwandfrei.

Ich bin für jeden Hinweis dankbar

Gruß
Thomas
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Call-Anweisung von Word 2010 zu VB6 schlägt fehl1.400T_Mauritz25.03.15 09:41
Re: Call-Anweisung von Word 2010 zu VB6 schlägt fehl593Blackbox25.03.15 15:01

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel