Office: Formatierungszeichen mit einem VBA Makro einblenden

Helfe beim Thema Formatierungszeichen mit einem VBA Makro einblenden in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo! Ich benutze Word 365 und habe eine Vorlage mit Makros. Über eine Userform werden dann Textbausteine ein- oder ausgeblendet. Nun möchte ich,... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von Al3x05, 19. März 2023.

  1. Al3x05 User

    Formatierungszeichen mit einem VBA Makro einblenden


    Hallo!

    Ich benutze Word 365 und habe eine Vorlage mit Makros. Über eine Userform werden dann Textbausteine ein- oder ausgeblendet. Nun möchte ich, dass wenn man auf Basis der Vorlage ein neues Dokument erstellt, im neuen Dokument die Formatierungszeichen eingeschaltet sind.

    Bei folgendem Code in "ThisDocument"
    Code:
    Option Explicit
    Private Sub Document_New()
        UserForm1.Show
        ActiveWindow.View.ShowAll = True
    End Sub
    bekomme ich leider immer die Fehlermeldung Methode oder Datenobjekt nicht gefunden.

    Kann mir da wer helfen?
     
    Al3x05, 19. März 2023
    #1
  2. Gerhard H Erfahrener User
    Hallo Al,

    zwei Sachen:

    Vielleicht wäre es sinnvoll, die Reihenfolge umzudrehen (muss nicht unbedingt sein) und vor das ActiveWindow noch ein Activedocument zu setzen (hilft ziemlich sicher):
    Code:
    Private Sub Document_New()
    ActiveDocument.ActiveWindow.View.ShowAll = Not (ActiveWindow.View.ShowAll)
    UserForm1.Show
    End Sub
    
     
    Gerhard H, 19. März 2023
    #2
    1 Person gefällt das.
  3. Al3x05 User
    Lieber Gerhard!

    Vielen Dank für die rasche Antwort!
    Die Formatierungszeichen werden jetzt eingeblendet.

    Scheinbar macht es einen Unterschied, ob die Formatierungszeichen standardmäßig eingeblendet waren (also vor dem Öffnen des Dokuments eingeblendet waren) oder erst mit dem Code eingeblendet werden.
    Zur Erklärung:
    Beispiel 1: Ich öffne ein Word Dokument und blende die Formatierungszeichen ein. Dann schließe ich das Word Dokument und öffne die Vorlage.
    Beispiel 2: Ich öffne ein Word Dokument und blende die Formatierungszeichen aus. Dann schließe ich das Word Dokument und öffne die Vorlage.

    In Beispiel 1 funktioniert alles wunderbar.
    In Beispiel 2 wird trotz dem obigen Code der nachfolgende Code (ein Teil des Codes der Userform) nicht richtig ausgeführt (der ausgeblendete Text steht jeweils in einer eigenen Zeile und ist nicht mit anderem nicht ausgeblendetem Text kombiniert):


    Code:
    ' Lösche ausgeblendeten Text
        Dim para As Paragraph
        For Each para In ActiveDocument.Paragraphs
            If para.Range.Font.Hidden = True Then
                para.Range.Delete
            End If
        Next para
    Hast du eine Idee woran das liegen könnte?

    lg Alex
     
    Al3x05, 19. März 2023
    #3
  4. czil hat Ahnung

    Formatierungszeichen mit einem VBA Makro einblenden

    Wenn du den Absatz löschst, dann heißt das ja nicht, dass du die hart formatierten Zeichen auch löscht die ausgeblendet sind. Mit deinem Code sollten nur die Absatzmarken gelöscht werden deren Zeichen so formatiert sind.
    Markiert und ausgeblendet ist das eine Eigenschaft der jeweilig markierten Zeichen, d.h. du müsstest diese einzeln durchschleifen und löschen.
    ein Grund mehr, auch diese Formatierung mit einer FV zu erledigen.
     
  5. Gerhard H Erfahrener User
    Hallo Al,

    ich hab dazu vorerst nur Fragen:

    1.
    Deine beiden Dokumente aus Beispiel 1 und 2 sind nur dafür da, um den Ausgangsstatus herzustellen (Formatierungszeichen an oder aus) und haben mit der Dokumentvorlage nichts zu tun?

    2.
    Du öffnest die Vorlage. Was genau meinst du damit?
    Das Dokument als Vorlage öffnen, also z.B. über Rechtsklick > Öffnen?
    Ein bereits gespeichertes Dokument auf Basis deiner Vorlage öffnen?
    Ein neues Dokument auf Basis der Vorlage erstellen?

    In den ersten beiden Fällen würde die Prozedur Document_New() nicht greifen, die Formatierungszeichen würden nicht eingeblendet und verborgener Text könnte so nicht gelöscht weden. Da müsstest du Document_Open() einsetzen.

    3.
    Deine Beschreibung, wie es aussieht, wenn der Code nicht richtig ausgeführt wird, kann ich nicht nachvollziehen (im Sinne von: keine Ahnung, wie das aussehen soll). Vielleicht hilft da ein Muster deiner Vorlage, damit man das mal so durchspielen kann.

    4.
    Schließlich frag ich mich, wieso du eine Schleife über alle Absätze machst, statt einfach nach ausgeblendetem Text zu suchen. Ich würde das so machen:
    Code:
    With ActiveDocument.Range.Find
        .Font.Hidden = True
        .Replacement.Text = ""
        .Execute Replace:=wdReplaceAll
    End With
    Das geht erstens schneller und zweitens kannst du so auch ausgeblendet formatierte Teilbereiche innerhalb von Absätzen erwischen.
     
    Gerhard H, 19. März 2023
    #5
  6. Al3x05 User
    Ich bin mir nicht sicher, ob ich dich verstehe. In Beispiel 1 funktioniert es ja wunderbar.

    @ Gerhard: Meine Antworten je unterhalb der Fragen unterstrichen:
    1.
    Deine beiden Dokumente aus Beispiel 1 und 2 sind nur dafür da, um den Ausgangsstatus herzustellen (Formatierungszeichen an oder aus) und haben mit der Dokumentvorlage nichts zu tun?

    Nein, das sind unterschiedliche Herangehensweisen. In beiden Beispielen wird die selbe Vorlage mittels Doppelklick (als Document_New) geöffnet. Der Unterschied ist nur, dass ich vorher in einem anderen Word-Dokument die Formatierungszeichen ein bzw ausgeblendet habe. Dieses Ein- und Ausblenden merkt sich Word offensichtlich und das Makro wird dann korrekt oder nicht korrekt ausgeführt.

    2.
    Du öffnest die Vorlage. Was genau meinst du damit?
    Das Dokument als Vorlage öffnen, also z.B. über Rechtsklick > Öffnen?
    Ein bereits gespeichertes Dokument auf Basis deiner Vorlage öffnen?
    Ein neues Dokument auf Basis der Vorlage erstellen?
    In den ersten beiden Fällen würde die Prozedur Document_New() nicht greifen, die Formatierungszeichen würden nicht eingeblendet und verborgener Text könnte so nicht gelöscht weden. Da müsstest du Document_Open() einsetzen.

    Die 3. Option (Doppelklick auf die Vorlage)

    3.
    Deine Beschreibung, wie es aussieht, wenn der Code nicht richtig ausgeführt wird, kann ich nicht nachvollziehen (im Sinne von: keine Ahnung, wie das aussehen soll). Vielleicht hilft da ein Muster deiner Vorlage, damit man das mal so durchspielen kann.

    Das ist eine sehr umfangreiche Vorlage, damit diese übersichtlicher wird, habe ich an verschiedenen Stellen Hinweise für mich eingebaut damit ich gewisse Abschnitte leichter finde. Die Hinweise stehen immer in einer Zeile, ohne anderen Text (also nur der Hinweistext), der Text ist zudem farblich markiert (nur um ihn leichter zu finden). Diese Hinweise habe ich ausgeblendet, damit das Makro sie von den anderen Texten unterscheiden kann (wenn es da etwas anderes gibt bin ich offen dafür).
    In Beispiel 1 werden die ausgeblendeten Hinweise wie gewünscht gelöscht.
    In Beispiel 2 stehen die Heinweise weiterhin im Dokument - so als ob es den Code zu Löschen des ausgeblendeten Textes gar nicht geben würde.


    4.
    Schließlich frag ich mich, wieso du eine Schleife über alle Absätze machst, statt einfach nach ausgeblendetem Text zu suchen. Ich würde das so machen:
    Code:
    With ActiveDocument.Range.Find
        .Font.Hidden = True
        .Replacement.Text = ""
        .Execute Replace:=wdReplaceAll
    End With
    Das geht erstens schneller und zweitens kannst du so auch ausgeblendet formatierte Teilbereiche innerhalb von Absätzen erwischen.[/QUOTE]

    An anderen Stellen ist noch weiterer ausgeblendeter Text, den ich aber brauche.

    Vielen Dank für eure Bemühungen.

    lg Alex
     
    Al3x05, 20. März 2023
    #6
  7. Gerhard H Erfahrener User
    Hallo Al,

    dann wende doch zunächst mal schöpferisch den Tipp von czil mit der Formatvorlage an und erstelle deren 2 (entweder als Absatzformatvorlagen, wenn das Löschen immer ganze Absätze betrifft, oder als Zeichenformatvorlagen, wenn der ausgeblendete Text auch auf Bereiche innerhalb eines Absatzes anwendbar sein soll):
    Beiden Formatvorlagen verpasst du die Eigenschaft Ausgeblendeter Text. Die eine nennst du z.B. ZuLoeschen, die andere VerBleiben und wendest sie im Dokument auf die entsprechenden Bereiche an.

    Auf das Makro aus Beitrag 5 angewendet, notierst du dann statt .Font.Hidden = true einfach: .Style = "ZuLoeschen"

    In der Hoffnung, dass dann der Spuk vorbei ist. Andernfalls muss man weiter rätseln.
     
    Gerhard H, 20. März 2023
    #7
  8. czil hat Ahnung

    Formatierungszeichen mit einem VBA Makro einblenden

    Zur Erläuterung meines Beitrags:
    Wenn man in einem Dok einen Text markiert und ausblendet, dann kann das funktionieren mit deinem Code, wenn man die Absatzmarke mit markiert hat. Wenn aber nur ein einfaches Wort eingefügt wurde, dann ist die Absatzformatierung noch so wie vorher, nur die harte Formatierung des Fonts des Wortes ist ausgeblendet, drum kriegt das das Makro nicht zu fassen.
    Ich arbeite daher bei meinem "Lösungstext" so, dass ich das mit einer FV (hier: Zeichenformatvorlage) mache die mir die Farbe des Fonts auf grün und ausgeblendet stellt. Wenn ich das Zeug also loshaben möchte, mach ich das mit Suchen/Ersetzen ohne den anderen ausgeblendeten Text, den ich behalten möchte, auch nur anzutasten. Der hat nämlich dann eine eigene FV.
    Gerhard hat dir schon beschrieben wie du das machen kannst.
     
  9. Al3x05 User
    Vielen Dank euch beiden!

    Ich werde den Lösungsansatz mal probieren und dann berichten.

    lg
     
    Al3x05, 21. März 2023
    #9
  10. Al3x05 User
    Es funktioniert wunderbar!

    Vielen Dank!

    lg Alex
     
Thema:

Formatierungszeichen mit einem VBA Makro einblenden

Die Seite wird geladen...
  1. Formatierungszeichen mit einem VBA Makro einblenden - Similar Threads - Formatierungszeichen VBA Makro

  2. Datum einer Datei per VBA auslesen

    in Microsoft Access Hilfe
    Datum einer Datei per VBA auslesen: Hallo, ich möchte mit Access VBA das Änderungsdatum einer Excel-Datei auslesen. Hat vielleicht einer eine Idee oder so etwas schon mal gemacht? Über jede Hilfe wäre ich sehr dankbar. liebe Grüße...
  3. VBA Code Anpassen "Wert Einfügen statt Formel"

    in Microsoft Excel Hilfe
    VBA Code Anpassen "Wert Einfügen statt Formel": Hallo alle zusammen. Ich benötige bitte Hilfe von einem Experten, da ich mit meinem Code unzufrieden bin und dieser bei größeren Datenmengen respektive Zeilen ziemlich langsam wird. Wie müsste man...
  4. Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA

    in Microsoft Excel Hilfe
    Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA: Hallo Leute, Hoffentlich könnt ihr mir hier helfen, ich krieg den Syntax einfach nicht hin (wahrscheinlich ist es auch totaler käse den ich programmiert habe). Also im Grunde soll eine Datei...
  5. Textteile aus Zelle mit mehreren Absätzen

    in Microsoft Excel Hilfe
    Textteile aus Zelle mit mehreren Absätzen: Hallo, ich habe folgendes Problem: Ich habe in einer Liste in einer Zelle mehrere Angaben aus denen ich Textteile (z.B. alles was in () oder {} ist) herausziehen will, um damit weiter zurechnen....
  6. Text und Bild nur bei eingeblendeten Formatierungszeichen sichtbar

    in Microsoft Word Hilfe
    Text und Bild nur bei eingeblendeten Formatierungszeichen sichtbar: Hallo, ich habe folgendes Problem: Bei einem in Word 2003 erstellten Dokument ist der Text nur sichtbar, wenn "Formatierungszeichen" angezeigt werden. Werden diese ausgeblendet, dann verschwindet...
  7. Formatierungszeichen

    in Microsoft Word Hilfe
    Formatierungszeichen: Hallo, weiß jemand, was das rot markierte Quadrat im Anhang bedeutet? Es wird über die Funktion "Formatierungszeichen sichtbar machen" angezeigt. In der Liste der Formatierungszeichen taucht es...
  8. Ein- und Ausblenden der Formatierungszeichen

    in Microsoft Outlook Tutorials
    Ein- und Ausblenden der Formatierungszeichen: Ein- und Ausblenden der Formatierungszeichen Outlook für Microsoft 365 Outlook 2019 Outlook 2016 Outlook 2013 Outlook 2010 Outlook 2007 Mehr......
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden