Word 2010 - Script nach fill-in ausführen

Moderator: ModerationP

Word 2010 - Script nach fill-in ausführen

Beitragvon Detlef Paschke » 23. Jul 2019, 19:44

Hallo,

ich habe mir in Word eine neue Vorlage für einen Briefkopf erstellt, die einige fill-in Felder in der Kopfzeile enthält um z.B. den Adressaten abzufragen.
Nun möchte ich ein Skript ausführen lassen sobald die fill-in Felder in der Kopfzeile bzw. das letzte fill-in Feld gefüllt also Aktualisiert wurde.

Folgendes habe ich mir zusammengesucht und das Skript funktioniert sehr gut als Modul und macht nichts anderes als alles in der 1. Kopfzeile zu markieren und alle Felder in statischen Text zu wandeln.

Das steht unter Module/NewMacros in der Vorlage:

Code: Alles auswählen
Sub Felder_statisch()
'
' Felder_statisch Makro
' Felder in 1. Kopfzeile statisch machen
'
    ActiveWindow.ActivePane.View.SeekView = wdSeekFirstPageHeader
    Selection.WholeStory
    Selection.Fields.Unlink
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub


Dies hätte ich nun gern automatisiert, am liebsten direkt nachdem das letzte fill-in Feld gefüllt wurden.

Ich dachte in der Art, dass irgendwie die Feldfunktion, z.B. { FILLIN "Letztes Feld" \d Letztes } zur Auswertung herangezogen werden muss...??

Ließe sich so etwas machen?

Diese Variante habe ich schon mal probiert und sie geht auch. So Startet das Skript immer wenn gespeichert wird.

Das steht unter Microsoft Word Objekte/ThisDocument in der Vorlage

Code: Alles auswählen
Option Explicit

Private WithEvents m_oApplication As Application
Public m_oDocument As Document

Private Sub Document_New()
  Set m_oApplication = Application
  Set m_oDocument = ActiveDocument
End Sub

Private Sub Document_Open()
  Set m_oApplication = Application
  Set m_oDocument = ActiveDocument
End Sub
Private Sub m_oApplication_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
  If m_oDocument Is Doc Then
    Felder_statisch
  End If
End Sub


Das hat aber den Nachteil, dass mir die Felder auch in statischen Text geändert werden wenn ich in der Vorlage noch einmal irgend welche Änderungen machen möchte.
Ich muss dann immer zunächst Makros deaktivieren, die Änderungen abspeichern und dann Makros wieder aktivieren. Und auch das hat hier heute manchmal nicht funktioniert.
Obwohl Makros gänzlich deaktiviert waren wurden beim Speichern die Felder zu statischem Text.

Aber sei es drum, mir geht es um das Ereignis "fill-in Feld bearbeitet" oder wie man sagen soll.
Ich habe mit dem Makro Recorder mal eine Aufzeichnung gemacht als die Felder gefüllt wurden, der gibt aber nicht viel aus und schon gar nichts, was ein Feld definieren würde.

Code: Alles auswählen
Sub Makro1()
'
' Makro1 Makro
'
'
    Selection.Fields.Update
End Sub


Dabei hatte ich ein Eingabefenster mit "OK" und "Cancel" und genau dieses "OK" beim letzten von drei fill-in Feldern würde ich gern auswerten und das Skript ausführen.

Und ich muss gleich gestehen, ich sammle mir solche Sachen immer einzeln
zusammen, habe also keine große Ahnung vom Syntax.

Viele Grüße
Detlef Paschke
Detlef Paschke
Neuling
 
Beiträge: 2
Registriert: 23. Jul 2019, 18:59

Re: Word 2010 - Script nach fill-in ausführen

Beitragvon theoS » 24. Jul 2019, 05:49

Also ich würde mich auf diese Sache mitdem Automatismus beim Verlassen des letzten Feldes nicht verlassen. Setz einen Knopf in die Schnellstartleiste den du drückst wenn du fertig bist.
Dann bist du sicher dass du mit Änderungen fertig bist.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4695
Registriert: 19. Apr 2008, 00:14

Re: Word 2010 - Script nach fill-in ausführen

Beitragvon Detlef Paschke » 24. Jul 2019, 09:19

theoS hat geschrieben:Also ich würde mich auf diese Sache mitdem Automatismus beim Verlassen des letzten Feldes nicht verlassen. Setz einen Knopf in die Schnellstartleiste den du drückst wenn du fertig bist.
Dann bist du sicher dass du mit Änderungen fertig bist.


Das ist halt so eine Glaubensfrage, der eine möchte es so und der andere so. ;-)
Ich möchte es gern automatisieren wenn es möglich ist. Beim speichern klappt es ja auch, aber das ist noch nicht meine Idealvorstellung.

Viele Grüße
Detlef Paschke
Neuling
 
Beiträge: 2
Registriert: 23. Jul 2019, 18:59

Re: Word 2010 - Script nach fill-in ausführen

Beitragvon theoS » 24. Jul 2019, 12:55

Na ja, man kann die Felder doch beim Verlassen berechnen.
Das geht allerdings nicht mit FillIn sondern mit Formularfeldern.
Da ist die Gelegenheit ein Makro zu rufen.
Das andere ist nicht so einfach zu verwirklichen weil Word keine eingebauten Events hat die Änderungen von bestimmten Textpassagen hat. Ein change Event kann man programmieren, dann wird jeder Tastendruck überwacht, das macht nicht mehr viel Spass damit zu arbeiten.
Ist auch nicht mehr so einfach Makros aufzurufen weil ja schon eins läuft.
Egal wie du das Makro rufst, wenn die Felder erst mal Text sind, ist nix mehr mit Ändern.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4695
Registriert: 19. Apr 2008, 00:14


Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste