2016-03-22 6 views
0

Ich habe ein Dokument in Wort, das einige Felder zu füllen hat, und eine Schaltfläche, die ich ein Makro zuweisen möchten. Wenn diese Schaltfläche angeklickt wird, muss das gleiche Formular mit leeren Feldern an das Ende des Dokuments angefügt werden, einschließlich der Schaltfläche (die erneut angeklickt werden kann und das Gleiche tut). HierWord-Makro zum Hinzufügen vordefinierten Inhalt am Ende des Dokuments auf Knopfdruck

ist das Dokument, die ich habe: https://drive.google.com/file/d/0B_2kyqxMx5x4UkxfOHJhOGVPdnc/view?usp=sharing

+1

Schauen Sie in das Konzept von BuildingBlocks, um mit zu beginnen. Und schauen Sie sich ein MakroButton-Feld für die Schaltfläche an, da sonst Probleme beim Verknüpfen des Codes mit der Schaltfläche auftreten. –

Antwort

1

Das Hauptproblem mit dem, was Sie dynamisch tun mögen, ist die Schaltfläche, um den Makrocode Verknüpfung ausgeführt werden. Der offensichtlichste Typ der zu verwendenden Schaltfläche ist das Legacy-ActiveX-Steuerelement auf der Registerkarte "Entwickler" der Multifunktionsleiste. Dies erfordert jedoch einen eigenen Prozedureintrag in dem Klassenmodul ThisDocument des Dokuments. Während es möglich ist, den Modulen "on the fly" Code hinzuzufügen, wird eine Sicherheitsoption deaktiviert.

Ein direkterer Ansatz ist die Verwendung des Feldes MacroButton. Dies erzeugt einen anklickbaren Text innerhalb des Dokuments. Es kann Text oder eine Grafik angezeigt werden (so dass es wie eine Taste aussieht) und erhält den Namen einer öffentlichen Unter zugewiesen, die keine Parameter:

{ MACROBUTTON NameOfMacro Click here } 

Strg + F9, um die Feldcode Klammern einfügen; Alt + F9, um zwischen Feldcode und Feldergebnis zu wechseln.

Grafiken in Word 2010 und später: * Das war eine Änderung der Grafik-Engine in Word 2010, die das Verhalten von Grafikobjekten im Macrobutton Feld beeinflusst. Durch Klicken auf das Objekt wird das Ribbon-Dienstprogramm zum Arbeiten mit Grafiken ausgelöst - der Feldcode "versteckt" die Grafik nicht mehr. Es gibt eine Reihe von Möglichkeiten, wie Sie dieses Problem umgehen können:

  1. Verwenden Sie ein Feld Include (die mit dem alten Grafikformat arbeitet) in einer externen Bilddatei zu bringen. Sobald das verknüpfte Bild in dem Feld ist, kann es in ein statisches Bild umgewandelt werden, indem das IncludePicture-Feld ausgewählt wird und Strg + Shift + F9 gedrückt wird. Word respektiert das alte Grafikformat und das Bild ist anklickbar.

    {Macrobutton NameOfMacro {Include "C: \\ Pfad \\ picture.jpg"}}

  2. Verwenden Sie die alte * .doc-Dateiformat. Beachten Sie, dass dies einige der Dinge einschränkt, die mit dem Dokument gemacht werden können, aber es wird die Verwendung der alten Grafik-Engine erzwingen.

  3. Verwenden Sie anstelle eines MacroButton-Felds das WindowBeforeDoubleClick-Ereignis oder das WindowSelectionChange-Ereignis, um den Code auszuführen.

* Mit Ausnahme der Include Feld Entkoppeln (was ich entdeckte ich), diese Informationen kamen aus this discussion on the Microsoft Answers site

Wenn Sie das Makro mit einem einzigen statt einem Doppelklick (der Standard laufen) Sie müssen die folgende Codezeile ausführen. Dies gilt für die gesamte Word-Anwendung und muss bei jedem Neustart von Word ausgeführt werden. Man konnte es in einem AutoNew Makro in der Vorlage/AutoOpen Makro in das Dokument einfügen:

Application.Options.ButtonFieldClicks = 1 

Der einfachste Weg, um den gesamten Inhalt, den Sie immer wieder als Baustein ist einfügen wollen speichern (früher als Autotext bekannt).

BuildingBlocks werden in Vorlagen gespeichert.Wenn Ihr Dokument aus einer Vorlage erstellt wird, wäre dies der logische Ort. Eine andere Möglichkeit wäre eine spezielle Vorlage, die Sie für diesen Zweck verwenden. Normal.dotm kann auch verwendet werden, aber bedenken Sie, dass dies manchmal entfernt wird.

(. Hinweis: Wenn Sie eine Vorlage für das Dokument verwenden, das auch der beste Ort wäre, um die Makro Makro-Taste angebracht speichern)

Sobald dies eingerichtet ist, die gesamte Code muss Setzen Sie den BuidlingBlock am Ende des Dokuments ein.

+0

Noch eine Frage: Statt "hier klicken" habe ich ein Bild eingefügt. Aber es ist nicht anklickbar. Um Makro auszuführen, muss der Benutzer auf einen kleinen Teil des grauen Hintergrunds dieses Bildes klicken. Wie kann ich dieses Bild anklickbar machen, wenn also auf MacroButton geklickt wird? – kecman

+0

Zu der "Antwort" hinzugefügt - ich hatte nicht bemerkt, dass sich das Verhalten geändert hatte

+0

Ich versuchte es mit der ersten Option, aber wenn ich mein MacroButton so änderte: '{MacroButton MyMacro {IncludePicture "C: \ Users \ stefanmarkovic \ Desktop \ Untitled.png“}}‘ es zeigt nur Text: „{Include "C: \ Benutzer \ stefanmarkovic \ Desktop \ Untitled.png"}, und kein Bild geladen wird, wenn i Shift + F9 – kecman