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

W00: An Textmarke: andere Grafik (.jpg) aus Datei einfügen

0 views
Skip to first unread message

Martin Bärtschi

unread,
Jan 25, 2006, 5:27:06 AM1/25/06
to
Hallo RatgeberIn

- möchte an der Textmarke "Logo", die bestehende Grafik ersetzen (neue
Grafik aus Datei .jpg Format)
die Textmarke befindet sich in der Kopfzeile, in einer Tabellenzelle, in
einem Textfeld

- bestehender Code:
Dim oAppWord As Word.Application
Dim WordDoc As Word.Document
Dim BookRange As Word.Range
Dim ils As Word.InlineShape
Set oAppWord = CreateObject("Word.Application")
Set WordDoc = oAppWord.Documents.Open("s:\TestMark.Doc")
Set BookRange = WordDoc.Bookmarks("Logo").Range
Set ils = WordDoc.InlineShapes.AddPicture("S:\Logo.jpg", False, True,
BookRange)
........

Frage:
- leider wird nichts ersetzt! was ist falsch?
(andere Textmarken mit Textbereichen kann ich ohne Probleme verändern!)

Danke für die Unterstützung.
Gruss
Martin

Christian Freßdorf

unread,
Jan 25, 2006, 6:52:20 AM1/25/06
to
Hallo Martin,

> - leider wird nichts ersetzt! was ist falsch?
> (andere Textmarken mit Textbereichen kann ich ohne Probleme verändern!)

das liegt an den Besonderheiten von Textfelder speziell in Kopfzeilen.
Auf die klassische Art werden nur Textmarken im Haupttextbereich erreicht.
In Deinem Fall musst Du die Kopfzeilen in den Abschnitten auf Shapes (dazu
zählen die Textfelder) durchsuchen:

Hier die Anpassung, sollte so bei Dir laufen (Achte auf falsche
Zeilenumbrüche!):

Sub LogoInTextframeBookmark()


Dim oAppWord As Word.Application
Dim WordDoc As Word.Document
Dim BookRange As Word.Range
Dim ils As Word.InlineShape

Dim oSec As Word.Section
Dim oHeader As Word.HeaderFooter
Dim oShp As Word.Shape
Const sLogo As String = "S:\Logo.jpg"
On Error Resume Next
Set oAppWord = GetObject(, "Word.application")
If oAppWord Is Nothing Then


Set oAppWord = CreateObject("Word.Application")

End If
Set WordDoc = oAppWord.Documents("TestMark.doc")
If WordDoc Is Nothing Then


Set WordDoc = oAppWord.Documents.Open("s:\TestMark.Doc")

End If
For Each oSec In WordDoc.Sections
For Each oHeader In oSec.Headers
For Each oShp In oHeader.Shapes
If oShp.TextFrame.HasText = True Then
If oShp.TextFrame.TextRange.Bookmarks.Exists("Logo") Then
Set BookRange = oShp.TextFrame.TextRange
Set ils = WordDoc.InlineShapes.AddPicture(sLogo, False, True, BookRange)
GoTo ende
End If
End If
Next oShp
Next oHeader
Next oSec
ende:
Set BookRange = Nothing
Set WordDoc = Nothing
Set oAppWord = Nothing
End Sub

--
Gruß Christian
~~~~~~~~~~~~
Antworten / Rückmeldungen nur in die NG!
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)

Thomas Gahler

unread,
Jan 25, 2006, 8:37:59 AM1/25/06
to
Hallo Christian


> > - leider wird nichts ersetzt! was ist falsch?
> > (andere Textmarken mit Textbereichen kann ich ohne Probleme verändern!)

Sorry habe leider keien zeit, aber Martin arbeitet mit einem InlineShape und
nicht mit einem Shape. ich denke das Problem ist das Gleiche wie du auch
schon hattest, dass der Ranfge nicht optimal definiert wurde. Auf
mypage.bluewin.ch/reprobst steht zwar die Lösung oder auch hier in der NG
aber ich finde sie im Moment nicht mehr. Oder im Buch ab S.800.

--
Thomas Gahler
MVP für WordVBA


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

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


Christian Freßdorf

unread,
Jan 25, 2006, 8:44:48 AM1/25/06
to
Hallo Thomas,

> Sorry habe leider keien zeit, aber Martin arbeitet mit einem InlineShape und
> nicht mit einem Shape. ich denke das Problem ist das Gleiche wie du auch

schon klar.
Und mein Beispiel macht was es soll.

Das Problem ist, wenn ich das Problem richtig verstanden habe, wirklich das
Textfeld, das in einer Kopfzeile verankert ist.
Die bekommst Du bekannterweiser nur über die Section-Headers und wird als
Shape behandelt.

Außerdem bin ich erst auf Seite 42 ;-)))

--
Gruß Christian
~~~~~~~~~~~~
!Gebt Rückmeldung wenn Ihr weiterhin Antworten möchtet!
=> http://www.fruiture.de/perl/questions.html#intro
=> http://word.mvps.org

Martin Bärtschi

unread,
Jan 26, 2006, 3:40:02 AM1/26/06
to
Guten Tag Christian

"Christian Freßdorf" schrieb:

> Hallo Martin,
>
> > - leider wird nichts ersetzt! was ist falsch?
> > (andere Textmarken mit Textbereichen kann ich ohne Probleme verändern!)
>
> das liegt an den Besonderheiten von Textfelder speziell in Kopfzeilen.

>.....................

Merci, habe Deine Hinweise eingebaut und getestet.

Folgendes Problem besteht:
- die bestehende Grafik in der Textbox ist weg (gelöscht), an deren Stelle
erscheint jetzt aber nicht die neue Grafik, sondern ein kleines weisses
Viereck mit rotem Kreuz darin (ich denke einfach mal um Anzuzeigen 'Hier ist
was falsch!').
Markiere ich das kleine weisse Viereck entpuppt es sich als
Grafik-Platzhalter und ich kann problemlos über. --> Einfügen, --> Grafik -->
aus Datei das neue Logo einfügen.

Hast Du eine Idee wo das Problem liegt?
Gruss
Martin

Christian Freßdorf

unread,
Jan 26, 2006, 3:45:46 AM1/26/06
to
Hallo Martin,

> - die bestehende Grafik in der Textbox ist weg (gelöscht), an deren Stelle
> erscheint jetzt aber nicht die neue Grafik, sondern ein kleines weisses
> Viereck mit rotem Kreuz darin (ich denke einfach mal um Anzuzeigen 'Hier ist
> was falsch!').

das Zeichen bedeutet, dass die Grafik nicht eingebunden werden konnte.
Passiert das nur bei der einen Grafik? Kannst Du sie von S:\Logo lokal
hinverschieben?

Martin Bärtschi

unread,
Jan 26, 2006, 4:33:02 AM1/26/06
to
Hallo Christian

"Christian Freßdorf" schrieb:

>.......

> das Zeichen bedeutet, dass die Grafik nicht eingebunden werden konnte.
> Passiert das nur bei der einen Grafik? Kannst Du sie von S:\Logo lokal
> hinverschieben?

>.......

Stimmt, nur mit einem Logo funktioniert's nicht. Mit den anderen 5 klappt's.
Lasse das eine Logo neu erstellen.

Danke für Deine Hilfe, sie ist wirklich toll und nicht selbstverständlich!
Gruss
Martin

0 new messages