Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bilder in Kopf-/ Fusszeile automatisch aktualisieren

155 views
Skip to first unread message

Stefan Wirrer

unread,
Apr 22, 2010, 5:34:48 AM4/22/10
to
Hallo,

ich habe in Word 2003 in Kopf- und Fußzeile Grafiken/Bilder
per IncludePicture eingefügt (als Briefpapier).
Wie kann man diese Bilder beim Starten von Word automatisch
akualisieren (also der Makro-Ersatz zu Grafik markieren und
dann F9 drücken)?

Welche Auto-makros (AutoNew, AutoOpen, ...) sind für
.doc und .dot notwendig, um die Aktualisierungsfunktion aufzurufen?

Grüße
Stefan


Thomas Gahler

unread,
Apr 22, 2010, 5:10:12 PM4/22/10
to
Hallo Stefan


> ich habe in Word 2003 in Kopf- und Fußzeile Grafiken/Bilder
> per IncludePicture eingefügt (als Briefpapier).
> Wie kann man diese Bilder beim Starten von Word automatisch
> akualisieren (also der Makro-Ersatz zu Grafik markieren und
> dann F9 drücken)?

Die nachstehende Prozedur aktualisiert die alle Felder (ausser die
Verzeichnisse) in allen .StoryRanges. Falls du nur die IncludePictures
möchtest, dann ein zusätzliches "If" einbauen.

Sub Demo()
Dim rng As Word.Range

For Each rng In ActiveDocument.StoryRanges
rng.Fields.Update
Do While Not (rng.NextStoryRange Is Nothing)
Set rng = rng.NextStoryRange
rng.Fields.Update
Loop
Next rng
End Sub

> Welche Auto-makros (AutoNew, AutoOpen, ...) sind für
> .doc und .dot notwendig, um die Aktualisierungsfunktion aufzurufen?

AutoOpen beim öffnen des Dokuments
AutoNew beim anlegen eines neuen Dokuments basierend auf der Dokumentvorlage
AutoClose beim schliessen des Dokuments


--
Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows Vista (SP2), Office 2007 (SP2)


Stefan Wirrer

unread,
Apr 23, 2010, 6:25:49 AM4/23/10
to
Hallo Thomas,

Thomas Gahler wrote:
>> ich habe in Word 2003 in Kopf- und Fu�zeile Grafiken/Bilder
>> per IncludePicture eingef�gt (als Briefpapier).


>> Wie kann man diese Bilder beim Starten von Word automatisch
>> akualisieren (also der Makro-Ersatz zu Grafik markieren und

>> dann F9 dr�cken)?


> Die nachstehende Prozedur aktualisiert die alle Felder (ausser die
> Verzeichnisse) in allen .StoryRanges. Falls du nur die IncludePictures

> m�chtest, dann ein zus�tzliches "If" einbauen.


>
> Sub Demo()
> Dim rng As Word.Range
>
> For Each rng In ActiveDocument.StoryRanges
> rng.Fields.Update
> Do While Not (rng.NextStoryRange Is Nothing)
> Set rng = rng.NextStoryRange
> rng.Fields.Update
> Loop
> Next rng
> End Sub

Das funktioniert leider nicht (mehr).
Das hatte ich so im Dezember in meine Dokumente eingebaut. Aber
jetzt wird die Grafik/das Bild nicht mehr aktualisiert.
Per Hand (also per Maus markieren und anschl. F9) geht's.

Hast du einen anderen L�sungsvorschlag?

Systeme:
Win XP und Office 2003, jeweils aktueller Stand.
oder Win7 + O2003 oder Win7 + O07

Gr��e
Stefan


Thomas Gahler

unread,
Apr 23, 2010, 5:30:50 PM4/23/10
to
Hallo Stefan


> Das funktioniert leider nicht (mehr).

Was heisst "geht nicht mehr"?
- irgendwelche Fehlermeldungen
- was meint der Debugger? (werden die Schleifen durchlaufen)

Stefan Wirrer

unread,
Apr 26, 2010, 3:40:02 AM4/26/10
to
Hallo Thomas,

Thomas Gahler wrote:
> Hallo Stefan
>> Das funktioniert leider nicht (mehr).
> Was heisst "geht nicht mehr"?
> - irgendwelche Fehlermeldungen
> - was meint der Debugger? (werden die Schleifen durchlaufen)

Das Bild wird nicht aktualisiert.
Es gibt keinerlei Fehlermeldungen.
Das Objekt wird angesprochen. Ich kann Eigenschaften, zB Höhe,
auslesen und ändern. Höhe ändern wird sofort ausgeführt.

Im Dezember habe ich viele Dokumente um diese Funktionalität
erweitert und getestet. Damals habe ich die Bilder der Kopf-
und Fußzeile von verlinkt auf eingebettet + verlinkt umgestellt (Da-
mit man auch ohne Serverzugriff das vollständige Layout hat).

Danke für die Unterstützung
Stefan


Thomas Gahler

unread,
Apr 27, 2010, 4:16:45 AM4/27/10
to
Hallo Stefan


> Im Dezember habe ich viele Dokumente um diese Funktionalität
> erweitert und getestet. Damals habe ich die Bilder der Kopf-
> und Fußzeile von verlinkt auf eingebettet + verlinkt umgestellt (Da-
> mit man auch ohne Serverzugriff das vollständige Layout hat).

Ist denn dir Originaldatei noch dort wo sie sein muss.
Schau dir mal die Feldfunktion an (Umschalten mit Alt+F9), wohin zeigt der
Pfad


--
Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP3), Office XP (SP3)


Stefan Wirrer

unread,
Apr 27, 2010, 6:40:31 AM4/27/10
to
Hallo Thomas,

Thomas Gahler schreibselte:
> Hallo Stefan

>> Im Dezember habe ich viele Dokumente um diese Funktionalität
>> erweitert und getestet. Damals habe ich die Bilder der Kopf-
>> und Fußzeile von verlinkt auf eingebettet + verlinkt umgestellt (Da-
>> mit man auch ohne Serverzugriff das vollständige Layout hat).
> Ist denn dir Originaldatei noch dort wo sie sein muss.
> Schau dir mal die Feldfunktion an (Umschalten mit Alt+F9), wohin
> zeigt der Pfad

das funktioniert mit den Bildern nicht.

Wenn ich das Bild markiere und F9 drücke, wird es aktualisiert.
Der Pfad muss also stimmen.

Ich hab jetzt das ganze nochmals durchgespielt.
Das automatische Aktualisieren funktioniert nur, wenn ich das Layout
des Bildes nicht ändere!
Mit der Einstellung "Mit Text in Zeile" bei der Umbruchart wird das
Bild automatisch aktualisiert. Mit anderen Einstellungen leider
nicht mehr.

Das Problem tritt sowohl beim Einbetten mit "IncludePicture" auf,
als auch bei "Einfügen" - "Grafik" - "Aus Datei".

Kannst du das bestätigen?
Gibt es einen Workaround?

Grüße
Stefan


Thomas Gahler

unread,
Apr 27, 2010, 7:28:29 AM4/27/10
to
Hallo Stefan


> Ich hab jetzt das ganze nochmals durchgespielt.
> Das automatische Aktualisieren funktioniert nur, wenn ich das Layout
> des Bildes nicht ändere!
> Mit der Einstellung "Mit Text in Zeile" bei der Umbruchart wird das
> Bild automatisch aktualisiert. Mit anderen Einstellungen leider
> nicht mehr.
>
> Das Problem tritt sowohl beim Einbetten mit "IncludePicture" auf,
> als auch bei "Einfügen" - "Grafik" - "Aus Datei".

Ich verstehe nicht ganz bzw. bin nihct ganz sicher was du machst. Du
schreibst bei der Einstellung "Mit Text in Zeile" funktioniert es sonst
nicht.

Bei "Mit Text in Zeile" hast du ein InlineShape (schwarze Ankerpunkte) und
kannst den Pfad mittels Alt+F9 anzeigen lassen. Bei allen anderen
Einstellungen wird deine Grafik in ein Shape (weisse Ankerpunkte)
konvertiert. Und ein Shape kannst du via .Fields.Update nicht ansprechen.

Dann müsstest du duch die .Spapes-Auflistung duch gehen und
- .LinkFormat.Update
aufrufen


Kannst du dir den Pfad mittels Alt+F9 anzeigen lassen?
Welche Farbe haben die Ankerpunkte deiner Grafiken?

Stefan Wirrer

unread,
Apr 27, 2010, 9:18:55 AM4/27/10
to
Hallo Thomas,

Thomas Gahler schreibselte:


> Hallo Stefan
>
>> Ich hab jetzt das ganze nochmals durchgespielt.
>> Das automatische Aktualisieren funktioniert nur, wenn ich das Layout
>> des Bildes nicht ändere!
>> Mit der Einstellung "Mit Text in Zeile" bei der Umbruchart wird das
>> Bild automatisch aktualisiert. Mit anderen Einstellungen leider
>> nicht mehr.
>>
>> Das Problem tritt sowohl beim Einbetten mit "IncludePicture" auf,
>> als auch bei "Einfügen" - "Grafik" - "Aus Datei".
> Ich verstehe nicht ganz bzw. bin nihct ganz sicher was du machst. Du
> schreibst bei der Einstellung "Mit Text in Zeile" funktioniert es
> sonst nicht.
>
> Bei "Mit Text in Zeile" hast du ein InlineShape (schwarze
> Ankerpunkte) und kannst den Pfad mittels Alt+F9 anzeigen lassen.

Richtig. Hier funktioniert die Pfadanzeige.

> Bei allen anderen Einstellungen wird deine Grafik in ein Shape (weisse
> Ankerpunkte) konvertiert. Und ein Shape kannst du via .Fields.Update
> nicht ansprechen.

Richtig. Und hier wird auch der Pfad nicht angezeigt

> Dann müsstest du duch die .Spapes-Auflistung duch gehen und
> - .LinkFormat.Update
> aufrufen

Das ist der entscheidende Hinweis. Ich habe kein InlineShape,
sondern ein Shape. Das bei Word hier unterschieden werden muss,
auf das muss man erst mal kommen.

Hier meine Funktion:
Sub UpdateShapeLinkHeaderFooter()
'================================
' Aktualisieren der Bilder in Kopf- und Fusszeile, die von Word als SHAPE
behandelt werden.
' Codebasis: http://www.chf-online.de/vba/vbaaktualisieren2.htm
' Änderung nach Hinweis von Thomas Gahler in der NG
microsoft.public.de.word.vba
' 27.04.2010, Stefan Wirrer

Dim oDoc As Document
Dim docSec As Section
Dim oHF As HeaderFooter
Dim shp As Shape

Set oDoc = ActiveDocument

For Each docSec In oDoc.Sections
For Each oHF In docSec.Headers
For Each shp In oHF.Shapes
shp.LinkFormat.Update
Next shp
Next oHF
For Each oHF In docSec.Footers
For Each shp In oHF.Shapes
shp.LinkFormat.Update
Next shp
Next oHF
Next docSec

Set oDoc = Nothing

End Sub

Damit funktioniert's jetzt.
Vielen Dank für die Unterstützung.

Stefan


0 new messages