37414
Jan 14, 2015, updated at Jan 22, 2015 (UTC)
5741
21
0
Word Makro - Objekt mit Text verschieben
Hallo,
in einem anderen Thread hatte ich schon Hilfe bei einem Word-Makro (Word 2000) erhalten.
Das Skript ist dieses hier:
Nun würde ich gerne das Bild (Unterschrift) so einsetzen, dass sie automatisch mit nach unten gerückt wird, wenn man weiter oben noch Text schreibt... also wenn man weitere Zeilen weiter oben einfügt.
Manuell geht das, wenn ich über "Grafik formatieren / Layout / Weitere / "Objekt mit Text verschieben"" anhake.
Wie aber mache ich das über mein Script?
Was muss ich dazu an dem Script ändern?
Danke und Gruss,
imebro
in einem anderen Thread hatte ich schon Hilfe bei einem Word-Makro (Word 2000) erhalten.
Das Skript ist dieses hier:
Sub Unterschrift()
'
' Unterschrift per Makro einsetzen
'
Dim img As InlineShape, shp As Shape
Set img = Selection.InlineShapes.AddPicture("C:\Users\name\Desktop\IM.jpg")
Set shp = img.ConvertToShape
shp.WrapFormat.Type = wdWrapNone
End Sub
Nun würde ich gerne das Bild (Unterschrift) so einsetzen, dass sie automatisch mit nach unten gerückt wird, wenn man weiter oben noch Text schreibt... also wenn man weitere Zeilen weiter oben einfügt.
Manuell geht das, wenn ich über "Grafik formatieren / Layout / Weitere / "Objekt mit Text verschieben"" anhake.
Wie aber mache ich das über mein Script?
Was muss ich dazu an dem Script ändern?
Danke und Gruss,
imebro
Please also mark the comments that contributed to the solution of the article
Content-Key: 259817
Url: https://administrator.de/contentid/259817
Printed on: April 25, 2024 at 07:04 o'clock
21 Comments
Latest comment
Hallo imebro,
sollte mit folgender Ergänzung funktionieren. Unter Word 2010 ist das Verhalten zwar Standardmäßig so das das Bild mit dem Text verschoben wird, aber ich denke das es an Word 2000 liegt das dem nicht so ist.
Grüße Uwe
sollte mit folgender Ergänzung funktionieren. Unter Word 2010 ist das Verhalten zwar Standardmäßig so das das Bild mit dem Text verschoben wird, aber ich denke das es an Word 2000 liegt das dem nicht so ist.
Sub Unterschrift()
'
' Unterschrift per Makro einsetzen
'
Dim img As InlineShape, shp As Shape
Set img = Selection.InlineShapes.AddPicture("C:\Users\name\Desktop\IM.jpg")
Set shp = img.ConvertToShape
With shp
.WrapFormat.Type = wdWrapNone
.RelativeVerticalPosition = wdRelativeVerticalPositionParagraph
End With
End Sub
1) Im Moment wird das Foto ja mit "Vor den Text" formatiert. Was muss ich für "Hinter den Text" ändern?
Das geht mir der Konstanten wdWrapBehindzu 2
Das geht, aber warum willst du das Bild im Hintergrund haben ? Denn wenn man es in den Hintergrund setzt ist es wieder aus dem Kontext gezogen und man müsste mehrere Zeilen hinter Mit freundlichen Grüßen einfügen da beim Einfügen nur einer Zeile diese dann über die Unterschrift gezogen würde. Deswegen nutzt man hier normalerweise ein Inline-Shape, dann wird die nächste Zeile unter der Unterschrift platziert.
Ich würde das wenn's per Code sein soll so machen:
Und beschäftige dich mal mit den Referenzen, dann musst du nicht wegen jeder Konstanten fragen
Viel Erfolg!
Sub Unterschrift()
'
' Unterschrift per Makro einsetzen
'
Dim img As InlineShape, posImage As Range, posAbteilung As Range
Selection.GoTo wdGoToPage, wdGoToFirst
With ActiveDocument.Content.Find
.Text = "Mit freundlichen Grüßen"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
.Execute
If .Found Then
.Parent.InsertParagraphAfter
.Parent.InsertParagraphAfter
Set posImage = .Parent.GoTo(wdGoToLine, wdGoToNext)
Set img = posImage.InlineShapes.AddPicture("D:\Unterschrift.png")
Set posAbteilung = posImage.GoTo(wdGoToLine, wdGoToNext)
posAbteilung.Text = "[POSITION] [ABTEILUNG]"
End If
End With
End Sub
Und beschäftige dich mal mit den Referenzen, dann musst du nicht wegen jeder Konstanten fragen
VBA/VBS/WSH/Office Developer Referenzen
- Visual Basic-Referenz
- Windows Script Host -Referenz
- Office 2010 Developer References
- Office 2013 Developer References
- Bücher zu VBA
Viel Erfolg!
Zitat von @37414:
Die Unterschrift (also das JPG) schaut nur ca. 2mm unter "Mit freundlichen Grüßen" raus... der Rest steht im
Hintergrund und ist nicht sichtbar.
Habe hier leider kein so altes Word 2000 da, unter Word 2010 geht es einwandfrei ...Die Unterschrift (also das JPG) schaut nur ca. 2mm unter "Mit freundlichen Grüßen" raus... der Rest steht im
Hintergrund und ist nicht sichtbar.
Weiterhin ist es auch nicht mit "Hinter den Text" formatiert... oder war das Deine Absicht?
Das war Absicht!machs mal hiermit, vermutlich ist dann Word 2000 eher zufrieden ...:
Sub Unterschrift()
'
' Unterschrift per Makro einsetzen
'
Dim img As InlineShape, shp As Shape, posImage As Range, posAbteilung As Range
Selection.GoTo wdGoToPage, wdGoToFirst
With ActiveDocument.Content.Find
.Text = "Mit freundlichen Grüßen"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
.Execute
If .Found Then
.Parent.InsertParagraphAfter
.Parent.InsertParagraphAfter
Set posImage = .Parent.GoTo(wdGoToLine, wdGoToNext,1)
Set img = posImage.InlineShapes.AddPicture("D:\Unterschrift.png")
Set shp = img.ConvertToShape
With shp
.WrapFormat.Type = wdWrapTopBottom
.RelativeVerticalPosition = wdRelativeVerticalPositionParagraph
End With
Set posAbteilung = posImage.GoTo(wdGoToLine, wdGoToNext,1)
posAbteilung.Text = "[POSITION] [ABTEILUNG]"
End If
End With
End Sub
Man kann alternativ natürlich an den entsprechenden Stellen Textmarken (Bookmarks) in der Vorlage setzen und diese dann mit den entsprechenden Daten ersetzen anstatt nach dem Text Mit freundlichen Grüßen zu suchen.
Wie immer gibt es hier 1000 und 1 Weg zum Ziel...
Zitat von @37414:
Jetzt steht die Unterschrift (JPG) mehrere Zeilen ÜBER dem Text "Mit freundlichen Grüßen".
Wie gesagt kein Word 2000 zu Testen hier, das scheint sich doch sehr anders zu verhalten als die aktuellen Versionen.Jetzt steht die Unterschrift (JPG) mehrere Zeilen ÜBER dem Text "Mit freundlichen Grüßen".
Oder halt die Variante mit den Textmarken, die Du eben noch angeführt hattest?
- Word Userform - Suchfeld für Worddateien - Ergebnisausgabe in Listbox
- http://www.0711office.de/word/Bookmark.htm
Hmmm... wie würdest Du es machen?
Das ist immer auf den jeweiligen Workflow bezogen, das musst du für dich entscheiden. Wenn das mit der Verknüpfung bei dir läuft mach's damit.Grüße Uwe
So jetzt hatte ich wieder Zeit für den alten Word-Schinken
Ich habe jetzt extra für dich mal mit einem Word 2000 in einer VM getestet und damit geht es hier einwandfrei:
Hier als Beweis:
Hier auch das Testdokument(Word 2000) dazu (Pfad zur Grafik natürlich anpassen):
insert_signature_word2000_259817.doc
Und hier noch ein zweites Demo-Dokument (Word 2000) das es anhand von eingefügten Textmarken (Einfügen > Textmarken) macht (Pfad zur Grafik natürlich anpassen):
insert_signature_word2000_textmarker_259817.doc
So, damit solltest du versorgt sein.
Grüße Uwe
Ich habe jetzt extra für dich mal mit einem Word 2000 in einer VM getestet und damit geht es hier einwandfrei:
Hier als Beweis:
Sub Unterschrift()
Dim img As InlineShape, posImage As Range, posAbteilung As Range
Selection.GoTo wdGoToPage, wdGoToFirst
With ActiveDocument.Content.Find
.Text = "Mit freundlichen Grüßen"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
.Execute
If .Found Then
.Parent.InsertParagraphAfter
.Parent.InsertParagraphAfter
Set posImage = .Parent.GoTo(wdGoToLine, wdGoToNext, 1)
Set img = posImage.InlineShapes.AddPicture("d:\signature.png")
Set posAbteilung = posImage.GoTo(wdGoToLine, wdGoToNext, 1)
With posAbteilung
.End = .Paragraphs(1).Range.End
.Font.Name = Arial
.Font.Size = 9
.Text = "Dr. Ing. / Ingenieur"
End With
End If
End With
End Sub
insert_signature_word2000_259817.doc
Und hier noch ein zweites Demo-Dokument (Word 2000) das es anhand von eingefügten Textmarken (Einfügen > Textmarken) macht (Pfad zur Grafik natürlich anpassen):
insert_signature_word2000_textmarker_259817.doc
Sub Unterschrift()
With ActiveDocument
.Bookmarks("Unterschrift").Range.InlineShapes.AddPicture "D:\signature.png"
.Bookmarks("Subtext").Range.Text = "Dr. Ing. / Ingenieur"
End With
End Sub
Grüße Uwe