Word-Automatisierung - Word mit VBA und VBScript automatisieren

Kostenlos Downloaden Kostenlos Downloaden Kostenlos Downloaden Kostenlos Downloaden KI-Funktion Erfahren
Verfügbar für Windows, Mac, Linux und Web. Alle Optionen >>
> Edraw Tipps > Word-Automatisierung - Word mit VBA und VBScript automatisieren
author
Geschrieben von Daniel | 2024-01-15 18:49:03
Einfache Anleitung zur Verwendung der Word-Automatisierung durch Edraw Office Viewer Component. Mit der Word-Automatisierung können Sie ganz einfach Inhalte in das neu erstellte Dokument einfügen, den Seriendruck durchführen oder Text ersetzen.

Word Automatisierung Einführung

Mit VBA können Programmierer Microsoft Office-Anwendungen schnell automatisieren. Und in Kombination mit VBScript steht ihnen ein sehr mächtiges Tool zur Verfügung.

Die Edraw Office Viewer Komponente kann MS Word innerhalb eines Formulars oder einer Webseite hosten. Die Komponente unterstützt auch die Word Automatisierung. Dieser Artikel zeigt Ihnen, wie Sie die Word-Automatisierung mit der Edraw Office Viewer Komponente nutzen können.

Verschachtelte Word-Automatisierungsmethoden in der Office Viewer-Komponente

Die Edraw Office Viewer Komponente hat einige häufig verwendete Methoden zur Automatisierung von Wörtern inkludiert. So kann der Entwickler diese Methoden einfach aufrufen und sich nicht mehr um die Details der Word-Automatisierung kümmern.

boolean WordShowRevisions ([in] boolean Show)

Zeigt/verbirgt die Revisionen für das Office-Programm.

boolean WordAcceptAllRevisions ([in] boolean Receipt)

Akzeptiert oder verwirft alle verfolgten Änderungen in einem Dokument oder Bereich.

long WordGetBookmarkCount()

Gibt die Anzahl der Lesezeichen zurück.
BSTR WordReadBookmarkInfo([in] long Pos, [in] boolean NameOrValue)

Gibt den Namen oder den Wert des speziellen Lesezeichens zurück.
Pos: Der Index der Lesezeichen im Dokument. Von 1 bis ...
NameOrValue: True gibt den Namen des Lesezeichens zurück, False gibt den Wert des Lesezeichens zurück.

Beispiel:

Das folgende Java-Skript zeigt, wie Sie die Lesezeicheninformationen lesen können.

function Readbookmark_Example ()
{
Var count = edword.GetBookmarkCount();
For(int i=1; i<=count; i++)
{
Var name = edword.GetBookmarkInfo(i, true);
Var value = edword.GetBookmarkInfo(i, false);
}

boolean WordWriteBookmarkInfo([in] BSTR Name, [in] BSTR Value)

Schreibt den Wert für das spezielle Lesezeichen.
Name: Der Name des Lesezeichens.
Value: Der Wert des Lesezeichens.

boolean WordInsertFile([in] BSTR FilePath, [in, optional] VARIANT InDocPos)

Fügt eine Datei in eine geöffnete Word-Datei ein.
FilePath: Der Dateipfad muss eingefügt werden.
InDocPos: Die Einfügeposition. WdInPocPos.

enum WdInDocPos
{
wdInDocumentPosCursor = 1,
wdInDocumentPosStart = 2,
wdInDocumentPosEnd = 3 ,
}WdInDocPos;

boolean WordInsertText([in] BSTR Text, [in, optional] VARIANT InDocPos)

Fügt Textinhalt in eine geöffnete Word-Datei ein.
Text: Die Textzeichenfolge, die eingefügt werden soll.
InDocPos: Die Einfügeposition. WdInPocPos.

enum WdInDocPos
{
wdInDocumentPosCursor = 1,
wdInDocumentPosStart = 2,
wdInDocumentPosEnd = 3 ,
}WdInDocPos;

boolean WordInsertPicture([in] BSTR FilePath, [in] boolean InlineObject, [in, optional] VARIANT InDocPos)

Fügt ein Bild in eine geöffnete Word-Datei ein.
FilePath: Der Bildpfad muss eingefügt werden.
InDocPos: Die Einfügeposition. WdInPocPos.

enum WdInDocPos
{
wdInDocumentPosCursor = 1,
wdInDocumentPosStart = 2,
wdInDocumentPosEnd = 3 ,
}WdInDocPos;

boolean WordInsertBreak([in] WdBreakType BreakType)

Fügt einen Umbruch in eine geöffnete Word-Datei ein.
BreakType: Der Unterbrechungstyp. WdBreakType.

typedef enum WdBreakType
{
wdPageBreak = 7,
wdColumnBreak = 8,
wdSectionBreakNextPage = 2,
wdSectionBreakContinuous = 3,
wdSectionBreakEvenPage = 4,
wdSectionBreakOddPage = 5,
wdLineBreak = 6,
wdLineBreakClearLeft = 9,
wdLineBreakClearRight = 10,
wdTextWrappingBreak = 11,
}WdBreakType;

Beispiel

Das folgende Java-Skript zeigt, wie Sie einen Zeilenumbruch einfügen können.

function InsertBreak_Example ()
{
Edword.WordInsertBreak(6);
}

boolean WordGotoItem([in] WdGoToItem What, [in] WdGoToDirection Which, [in, optional] VARIANT Count, [in, optional] VARIANT Name)

Wechselt zu dem angegebenen Element im Word-Dokument.
What: Optionales Objekt. Die Art des Elements, auf das der Bereich oder die Auswahl verschoben wird. Kann eine der WdGoToItem Konstanten sein.
Which: Optionales Objekt. Das Objekt, auf das der Bereich oder die Auswahl verschoben wird. Kann eine der WdGoToDirection Konstanten sein.
Count: Optionales Objekt. Die Nummer des Objekts im Dokument. Der Standardwert ist 1.
Nur positive Werte sind gültig. Um ein Element anzugeben, das dem Bereich oder der Auswahl vorausgeht, verwenden Sie wdGoToPrevious als Argument Which und geben einen Count-Wert an.
Name: Optionales Objekt. Wenn das Argument What wdGoToBookmark, wdGoToComment, wdGoToField oder wdGoToObject ist, gibt dieses Argument einen Namen an.

enum WdGoToItem
{
wdGoToStart = 101,
wdGoToEnd = 102,
wdGoToBookmark = -1 ,
wdGoToComment = 6 ,
wdGoToEndnote = 5 ,
wdGoToEquation = 10 ,
wdGoToField = 7 ,
wdGoToFootnote = 4 ,
wdGoToGrammaticalError= 14 ,
wdGoToGraphic = 8 ,
wdGoToHeading= 11 ,
wdGoToLine = 3 ,
wdGoToObject = 9 ,
wdGoToPage = 1 ,
wdGoToPercent = 12 ,
wdGoToProofreadingError = 15 ,
wdGoToSection = 0 ,
wdGoToSpellingError = 13 ,
wdGoToTable = 2 ,
}WdGoToItem;

enum WdGoToDirection
{
wdGoToAbsolute = 1,
wdGoToFirst = 1,
wdGoToLast = -1 ,
wdGoToNext = 2 ,
wdGoToPrevious = 3 ,
wdGoToRelative = 2 ,
}WdGoToDirection;

Beispiel

Das folgende Java-Skript zeigt, wie Sie zum Dateiende gelangen.

function GoToItem_Example ()
{
Edword.WordGoToItem(102, 1);
}

boolean WordReplaceText([in] BSTR Text, [in] BSTR ReplaceText, [in] boolean MatchWholeWord, [in] boolean MatchCase)

Ersetzt den gesamten angegebenen String-Wert durch einen anderen String-Wert.
Text: Optionales Objekt. Der Text, nach dem gesucht werden soll.
ReplaceText: Der Ersetzungstext.
MatchCase: Optionales Objekt. True, um festzulegen, dass bei der Suche nach Text die Groß- und Kleinschreibung beachtet wird. Entspricht der Match Case Checkbox in der Dialogbox Suchen und Ersetzen (Bearbeiten Menü).
MatchWholeWord: Optionales Objekt. True, damit die Suchfunktion nur ganze Wörter findet, nicht aber Text, der Teil eines größeren Wortes ist. Entspricht dem Kontrollkästchen "Nur ganze Wörter suchen" im Dialogfeld Suchen und Ersetzen.

boolean WordMergeAndCompare([in] BSTR TargetFilePath)

Vergleicht und führt Dokumente zusammen und zeigt sie im aktuellen Fenster an.
TargetFilepath: Erforderlicher String.

boolean WordDisableDragAndDrop(boolean Disable)

Disables drag and drop.
long WordGetRevisionCount()

Gibt die Anzahl der Revisionen zurück.

BSTR WordReadRevisionInfo([in] long Pos, [in] WdRevisionType RevType)

Gibt den Namen oder den Wert des speziellen Lesezeichens zurück.
Pos: Der Index der Lesezeichen im Dokument. Von 1 bis ...
RevType: Der Revisionstyp. WdRevision.

enum WdRevisionType
{
wdRevisionAuthor = 0,
wdRevisionDate = 1,
wdRevisionType = 2,
wdRevisionText = 3,
}WdRevisionType;

Beispiel

Das folgende Java-Skript zeigt, wie Sie die Lesezeicheninformationen lesen können.

function ReadRevision_Example ()
{
Var count = edword.WordGetRevisionCount();
For(int i=1; i<=count; i++)
{
Var author = edword.WordReadRevisionInfo(i, 0);
Var text = edword. WordReadRevisionInfo (i, 3);
}

boolean WordAcceptRevision([in] long Pos, [in] boolean Accept)

Akzeptiert oder lehnt die angegebene verfolgte Änderung ab.
Pos: Der Index der Lesezeichen im Dokument. Von 1 bis ...
Accept: Akzeptiert oder verwirft die Revision.

boolean WordDisableViewRightClickMenu(boolean Disable)

Deaktiviert das Rechtsklickmenü in MS Word.
boolean WordCopyToClipboard()

Kopiert den gesamten Inhalt in die Zwischenablage.

boolean WordCopyToClipboardAsPicture()

Kopiert den gesamten Inhalt als Bild in die Zwischenablage.

boolean WordPasteFromClipboard([in, optional] VARIANT InDocPos)

Fügt Daten aus der Zwischenablage in die geöffnete Word-Datei ein.
InDocPos: Die Position. WdInDocPos.

enum WdInDocPos
{
wdInDocumentPosCursor = 1,
wdInDocumentPosStart = 2,
wdInDocumentPosEnd = 3 ,
}WdInDocPos;

boolean WordPasteSpecialFromClipboard([in] WdPasteDataType lFormatType, [in] boolean vFloatOverText, [in, optional] VARIANT InDocPos)

Fügt Daten mit einem speziellen Format aus der Zwischenablage in die geöffnete Word-Datei ein.
lFormatType: Paste format type. WdPasteDateType.
vFloatOverText: True = float the object over text.
InDocPos: Die Position. WdInDocPos.

enum WdPasteDataType
{
wdPasteBitmap = 4,
wdPasteDeviceIndependentBitmap = 5,
wdPasteEnhancedMetafile = 9,
wdPasteHTML = 10,
wdPasteHyperlink = 7,
wdPasteMetafilePicture = 3,
wdPasteOLEObject = 0,
wdPasteRTF = 1,
wdPasteShape = 8,
wdPasteText = 2,
}WdPasteDataType;

Word mit VBA und VBScript automatisieren

Ein Automatisierungsobjekt ist ein COM-Objekt, das die Schnittstelle IDispatch implementiert. Automatisierungsobjekte werden als ActiveX-Objekte bezeichnet, während eine Anwendung, die ein ActiveX-Objekt manipuliert, als ActiveX-Client bezeichnet wird. Diese Schnittstelle stellt vier Methoden zur Verfügung, von denen die wichtigste Invoke ist. Diese Methode ermöglicht den Aufruf von Methoden einer Klasse nach Namen mit einer beliebigen Anzahl von Parametern. Weder der Name der Methode noch die Anzahl der Parameter müssen zur Kompilierzeit bekannt sein, wie es bei COM-Objekten der Fall ist, die Automation nicht unterstützen. Außerdem gibt es in Skriptsprachen überhaupt keine "Kompilierzeit". Diese Technik wird als Late Binding bezeichnet. Die meisten bestehenden COM-Komponenten sind Automation-kompatibel und erlauben darüber hinaus sowohl Late Binding als auch traditionelles Early Binding zur Kompilierzeit. Dies wird durch die Implementierung so genannter dualer Schnittstellen erreicht, bei denen es sich um von IDispatch abgeleitete Schnittstellen handelt. Sprachen wie Visual Basic und Delphi sowie einige C++ Bibliotheken, die eine höhere Abstraktionsebene für COM bieten, stellen sicher, dass alle in diesen Sprachen erstellten Automatisierungskomponenten ihre Oberflächen mit dem Late und Early Binding korrekt duplizieren. Viele Entwickler sind mit dem Wort Anwendung in VB, C#, VC oder Delphi vertraut. Das ist sehr gut. Es wird Ihnen helfen, schnell mit dem Schreiben von Code zu beginnen, indem Sie die Word-Automatisierungsfunktionen der Office Viewer-Komponente nutzen.

Standard-Word-Automatisierung durchführen

Erstens können Sie das Dokument- oder Anwendungsobjekt abrufen, indem Sie die Methode ActiveDocument aufrufen.

IDispatch* ActiveDocument();

Liefert die Automation Schnittstelle des Dokumentobjekts.

Die Methode ermöglicht es Ihnen, einen Verweis auf die IDispatch Schnittstelle des eingebetteten Objekts zu erhalten. Über diese Schnittstelle können Sie das Objekt automatisieren, um Aufgaben durchzuführen, Teile des Dokuments zu bearbeiten oder Informationen darüber zu sammeln, was ein Benutzer hinzugefügt oder entfernt hat.

Sie können zum Beispiel eine Tabelle in das Word-Dokument einfügen:

IDispatch* GetApplication();

Liefert die Oberfläche der Anwendung für die Automatisierung.

In diesem Programm werden wir das Word-Objekt verwenden. Wir werden zwei Objekte verwenden, eines der Klasse Word Application und eines der Klasse Word Document. Wir öffnen die Word-Anwendung und ein Dokument. Der Benutzer kann das Dokument speichern. Folgen Sie den nachstehenden Schritten, um die Anwendung zu erstellen:

Starten Sie ein neues EXE-Projekt. Wählen Sie im Dialogfeld Referenzen die Objektbibliothek von Microsoft Word 9.0 aus. Denken Sie daran, dass Sie eine Word-Instanz auf Ihrem System haben sollten. Fügen Sie ein neues Modul zu Ihrem Projekt hinzu. Fügen Sie im Abschnitt "Allgemeine Deklarationen" des Moduls den folgenden Code ein.

Text durch Edraw Office Viewer Komponente ersetzen

Sie können die Office Automation verwenden, um Text durch die Komponente zu ersetzen.

javascript code:

var appWord = document.OA1.GetApplication;
appWord.Selection.Find.Execute('text', false, false, false, false, false, 1, false, false, 'replacetext', 2, false, false, false, false);

vbscript code:

Set objWord = document.OA1.GetApplication
Set objSelection = objWord.Selection
objSelection.Find.ClearFormatting
objSelection.Find.Replacement.ClearFormatting
objSelection.Find.Text = varFind
objSelection.Find.Replacement.Text = varReplace
objSelection.Find.Forward = True
objSelection.Find.Wrap = 1 'wdFindContinue
objSelection.Find.Format = False
objSelection.Find.MatchCase = False
objSelection.Find.MatchWholeWord = False
objSelection.Find.MatchWildcards = False
objSelection.Find.MatchSoundsLike = False
objSelection.Find.MatchAllWordForms = False
objSelection.Find.Execute

Fazit

Dieser Artikel zeigt Ihnen, wie Sie die Word-Automatisierung nutzen können, um die Office Viewer Komponente zu erweitern und wie Sie die eingeschlossenen Word-Automatisierungsmethoden aufrufen, um die Word-Automatisierung zu realisieren.

EdrawMax: Die intelligente Wahl für die Erstellung von Diagrammen

  • Automatisierte Diagramme mit KI-Unterstützung
  • Über 280 Arten von Diagrammen mühelos erstellen
  • Verschiedene Vorlagen & Symbole um Ihre Bedürfnisse
  • Drag & Drop-Schnittstelle und einfach zu bedienen
  • Jedes Detail mit intelligenten und dynamischen Toolkits anpassen
  • Kompatibel mit einer Vielzahl von Dateiformaten, wie MS-Office, Visio, PDF, usw
  • Diagramme exportieren, drucken und teilen