PDA

Vollständige Version anzeigen : Deckblatt ersatzlos entfernen


Stefan67!
04.09.2019, 07:36
Hallo zusammen,

wer kann mir sagen, wie ich problemlos über VBA ein Deckblatt incl. einer eingebetteten Exceldatei und diversen Active-X-Buttons und aus einer Worddatei entferne?
Wichtig wäre auch, dass die nur für das Deckblatt verwendete Kopf- und Fußzeile mit verschwindet und nicht an die Stelle des neuen ersten Blattes rutscht.

Gerhard H
04.09.2019, 18:54
Hallo Stefan,

du solltest ein bisschen genauere Angaben machen: Wie ist das Deckblatt definiert? Je nachdem ist die Lösung einfach bis aufwändiger:

Endet es mit einem Abschnittswechsel Nächste Seite?
Oder mit einem manuellen Seitenwechsel?
Oder etwa gar mit einem automatischen Seitenwechsel?
Hast du "erste Seite anders" für das Deckblatt eingestellt?
Hast du im Falle von Abschnittswechsel für die Kopfzeile eingestellt: Mit vorheriger verknüpfen?


Am besten wie immer ein Musterdokument, das nur Blindtext enthalten muss, dem man aber Antworten zu obigen Fragen entnehmen kann.

halweg
05.09.2019, 07:11
Interessant ist "per Makro". Denn das deutet darauf hin, dass diese Aufgabenstellung für verschiedene und ggf. auch verschiedenartige Dokumente wiederholt werden soll.
Und ja, hinsichtlich der Kopf-/Fußzeile muss natürlich vorher das "erste Seite anders" entfernt werden.

Stefan67!
06.09.2019, 07:39
Habe ein Beispiel angehängt, dass das Prinzip verdeutlichen soll:
Nach der Erstellung des eigentlichen Dokumentes habe ich über das Menue ein Deckblatt eingefügt und bearbeitet.
Manuell kann ich es dennoch über dasselbe Menue in MS-Word jederzeit wieder löschen.
Und genau diesen Schritt würde ich gerne automatisiert über ein VBA-Makro ausführen.

halweg
06.09.2019, 07:49
Oh, Deckblattfunktion?
Da kann ich leider nicht helfen, da ich die noch nie verwendet habe. Diese Funktionen sind auch so "intern", das sie von der Makroaufzeichnung nicht erfasst werden.

Gerhard H
06.09.2019, 08:25
Hallo Stefan,

der Menübefehl zum Erstellen eines Deckblattes fügt einen Textbaustein ein, der diverse grafischen Elemente inclusive eines Seitenumbruchs enthält und setzt das Seitenlayout auf Erste Seite anders.

Um das rückgängig machen zu können, versuch folgendes Makro:
Sub deckblattWeg()
Dim anfang As Long, ende As Long
Dim suchbereich As Range, loeschBereich As Range

'Erste Seite anders rückgängig machen
ActiveDocument.Sections(1).PageSetup.DifferentFirstPageHeaderFooter = False

'Löschbereich definieren (erste Seite inclusive des Seitenumbruchs
Set suchbereich = ActiveDocument.Range

With suchbereich.Find
.Text = "^m"
.Execute
Set loeschBereich = suchbereich
End With

Set loeschBereich = ActiveDocument.Range(Start:=0, End:=loeschBereich.End + 1)

'den definierten Löschbereich entfernen
loeschBereich.Delete

End Sub

Stefan67!
06.09.2019, 11:05
Hallo Gerhard,
scheint zu klappen - in der Beispieldatei klappt es jedenfalls.
ich teste es noch mit dem richtigen finalen Dokument und würde dann auch erst den Threat schließen wollen.

Vielen Dank aber erst mal, echt super!

Stefan67!
06.09.2019, 14:08
Es scheint doch noch irgendwo ein Problem zu geben - zumindest im finalen Dokument. Hier löscht der Code mir die erste Seite mit weg..(s. Anhang.)

Was habe ich falsch gemacht bzw. wo liegt der Unterschied zur ersten Bsp.-Datei?

Gerhard H
06.09.2019, 18:37
Hallo Stefan,

der Unterschied liegt doch auf der Hand:

Anders als im ersten Muster findet sich das, was man für ein Deckblatt halten könnte, und sicher nicht, wie vorher behauptet, per Einfügen > Deckblatt entstanden ist, erst auf Seite 2. Am Ende dieser Seite findet sich auch erst der manuelle Seitenumbruch, der in meinem Makro als Kriterium für das Ende des Löschbereichs definiert war. Es löscht somit wunschgemäß die beiden ersten Seiten.

Es erhebt sich jetzt tatsächlich die Frage, ob ein Makro sinnvoll sein kann: Wenn das Deckblatt bei deinen Dokumenten, auf die du ein Makro anwenden willst, mal auf der ersten, mal auf der zweiten Seiten stehen kann, mal mit manuellem Seitenumbruch, mal mit automatischem, dann wirds schwierig. Es sei denn, man kann das Deckblatt anders identifizieren als bisher. Aber das müsstest du uns sagen. Beispiel: Das Deckblatt enthält immer das Word "Specification" in einer wohldefinierten Formatvorlage, Schriftgröße, oder Farbe, wie es anderswo im Dokument nicht vorkommt. Oder was ähnliches.