Mit VBScript ein Wasserzeichen aus einem Word-Dokument entfernen
Hallo,
mit googeln und experimentieren hab ich es hiermit:
hinbekommen, mit VBScript ein Wasserzeichen "Entwurf" in ein bestehendes Word-Dokument einzufügen.
Was ich nicht hin bekomme, ist das Wasserzeichen wieder zu entfernen. Wie es scheint, würde hiermit:
aus dem Template der Eintrag "ENTWURF 1" entfernt, was ja in meinem Fall falsch ist.
Wie entfernt man also das Wasserzeichen wieder mit VBScript?
Neugierige Grüße,
Andreas
mit googeln und experimentieren hab ich es hiermit:
Dim ...
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open(docName)
...
bbPath = GetBuildingBlockPath(objWord, "Built-In Building Blocks.dotx")
entryName = "ENTWURF 1"
With objWord.ActiveDocument
.ActiveWindow.ActivePane.View.SeekView = 10
objWord.Templates(bbPath).BuildingBlockEntries(entryName).Insert objWord.Selection.Range, True
.SaveAs(newPath)
End With
hinbekommen, mit VBScript ein Wasserzeichen "Entwurf" in ein bestehendes Word-Dokument einzufügen.
Was ich nicht hin bekomme, ist das Wasserzeichen wieder zu entfernen. Wie es scheint, würde hiermit:
objWord.Templates(bbPath).BuildingBlockEntries(entryName).Delete
Wie entfernt man also das Wasserzeichen wieder mit VBScript?
Neugierige Grüße,
Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4222626613
Url: https://administrator.de/contentid/4222626613
Ausgedruckt am: 25.11.2024 um 10:11 Uhr
13 Kommentare
Neuester Kommentar
Dim shp
With objWord.ActiveWindow
.ActivePane.View.SeekView = 9
For Each shp In objWord.Selection.HeaderFooter.Shapes
If shp.AlternativeText = "ENTWURF 1" Then
shp.Delete
Exit For
End If
Next
.ActivePane.View.SeekView = 0
End With
In der Regel ist das bei den Building Blocks automatisch der Name des Blocks. Bei reinen Bildern evt. noch eine angehängte Dateierweiterung.
Was sagt dir wohl das hier ...
objWord.Selection
genau, wird dort entfernt wo die aktuelle Selektion gerade ist ... Gilt genauso für das Hinzufügen.wie ich das Wasserzeichen (s.o.) in jeder Seite eingefügt bekomme
Füge es in der Kopf/Fußzeile ein, und entferne den Haken bei "erste Seite anders".Zitat von @ahstax:
Danke @4091525239,
"erste Seite anders" zu entfernen geht leider nicht... Die erste Seite hat einen anderen Aufbau also die folgenden...
Danke @4091525239,
"erste Seite anders" zu entfernen geht leider nicht... Die erste Seite hat einen anderen Aufbau also die folgenden...
Dann fügst du es dort eben auch zusätzlich ein...
Range für erste Seite
ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range
für die anderen
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range
Ist doch klar, wenn du das nicht in Word selbst ausführst musst du die Konstanten (wdHeaderFooterFirstPage(2) und wdHeaderFooterPrimary(1)) durch ihre Integer Werte ersetzen!! Hast du doch oben selbst auch schon gemacht ... Man ej, kann man sich nicht mal 5 Minuten länger damit beschäftigen, und nicht gleich bei jedem Fehler aufgeben ??
Zitat von @ahstax:
Dennoch... neues Ärgenis:
Lässt sich denn vermeiden, dass mit dem EInfügen des Wasserzeichens ENTWURF eine bereits bestehende Hinterlegung im Header entfernt wird? Also, dass sozusagen das Wasserzeichen hinter das bestehende gelegt wird?
Du musst nur den Range passend definieren im Moment ist der ja komplett ausgewählt und wird durch das Einfügen komplett ersetzt. Also collapse die Selection des Ranges ...Dennoch... neues Ärgenis:
Lässt sich denn vermeiden, dass mit dem EInfügen des Wasserzeichens ENTWURF eine bereits bestehende Hinterlegung im Header entfernt wird? Also, dass sozusagen das Wasserzeichen hinter das bestehende gelegt wird?
Set rng = ActiveDocument.Sections(1).Headers(1).Range
rng.Collapse
' ....