Word - Markieren in einem Makro

Dieses Thema Word - Markieren in einem Makro im Forum "Microsoft Office Suite" wurde erstellt von gast-1234, 10. Jan. 2005.

Thema: Word - Markieren in einem Makro Hallo, für eine Dokumentation muss ich oft unformatierte Texte, die aber immer den gleichen Aufbau haben,...

  1. Hallo,

    für eine Dokumentation muss ich oft unformatierte Texte, die aber immer den gleichen Aufbau haben, umformatieren. Dazu habe ich mir diverse Makros aufgezeichnet, die das hervorragend erledigen.

    In einer Zeile werden die Modellbezeichnungen in []-Klammern eingeschlossen. Diese Bezeichnungen waren bisher immer so kurz, dass sie in eine Zeile gepasst haben. So konnte ich mit der Tastenkombination UMSCHALT+ENDE und dann mit der NACH-LINKS-Taste den Text komplett markieren und dann die entsprechende Formatierungsänderung vornehmen.

    Nun ist es aber ab und zu so, dass diese Bezeichnung auch über zwei Zeilen gehen *kann*. Mit meinen oben beschrieben Tastenkombinationen komme ich da nicht mehr weiter, weil so dann nur die erste Zeile formatiert wird.

    Daher suche ich eine Möglichkeit, wie ich die Markierung in diesem Fall bis zur schließenden ]-Klammer erweitern kann, egal, ob die Bezeichnung über eine oder über zwei Zeilen geht.

    Kennt da jemand einen Trick?

    Viele Dank für Hinweise.

    Gruß,

    Pampel
     
  2. Hi Pampel,

    sollen die Klammern mit markiert werden oder nur alles zwischen den Klammern ?

    Kommen diese Klammern innerhalb des  Text auch vor oder kann man danach suchen ?

    Wenn Sie innerhalb des Textes vorkommen, wie kann man sie von den gesuchten Klammern unterscheiden ?


    Gruß Matjes :)
     
  3. Hallo,

    die Klammern sollen mit markiert werden. Vor die erste Klammer zu kommen ist nicht das Problem. Aber zum richtigen Ende zu kommen. Wenn das Absatzzeichen in der neuen Zeile steht, dann bekomme ich mit UMSCHALT+Ende eben nur die erste Zeile in die Auswahl.

    Danke für Hinweise.

    Gruß,

    Pampel
     
  4. Hi Pampel,

    hab dir zwei Makros gestrickt:

    a) MarkierungBisZurNaechstenEckigeKlammernZuErweitern()
    Erweiter die bestehende Markeirung bis einschließlich der nächsten eckigen Klammer zu (]).

    b) NaechstenBereichEckigeKlammernMarkieren()
    Sucht nach der momentanen Selektion den nächsten Bereich mit eckige Klammer auf ([),  eckige Klammer zu (]) und markiert ihn.

    Gruß Matjes  :)
    Code:
    '***********************************************************
    Sub MarkierungBisZurNaechstenEckigeKlammernZuErweitern()
     ->Erweiter die bestehende Markeirung bis einschliesslich
     ->zur nächsten eckigen Klammer zu (]).
    '***********************************************************
      
      Dim pos_end As Long, r As Range
      
     ->markieten Bereich merken
      Set r = Selection.Range
      
     ->die Selection auf das Ende zusammenschrufen lassen
      Selection.Collapse Direction:=wdCollapseEnd
      
     ->Position der nächsten eckigen Klammer zu bestimmen
      With Selection.Find
        .Forward = True: .ClearFormatting
        .Execute FindText:=]
      End With
      pos_end = Selection.End
    
     ->Markierung
      If (r.Start < pos_end) And (r.End <> pos_end) Then
        ActiveDocument.Range(Start:=r.Start, End:=pos_end).Select
      Else
       ->alte Markeirung wieder herstellen
        r.Select
        MsgBox (keine->eckige Klammer zu' gefunden)
      End If
      Set r = Nothing
    End Sub
    '***********************************************************
    Sub NaechstenBereichEckigeKlammernMarkieren()
     ->Sucht nach der momentane Selektion
     ->den nächsten Bereich mit eckige Klammer auf ([),
     ->eckige Klammer zu (]) und markiert ihn.
    '***********************************************************
      
      Dim pos_anf As Long, pos_end As Long
      
     ->die vorherige Selection auf das Ende
     ->zusammenschrufen lassen
      Selection.Collapse Direction:=wdCollapseEnd
      
     ->Position der nächsten eckigen Klammer auf bestimmen
      With Selection.Find
        .Forward = True: .ClearFormatting
        .Execute FindText:=[
      End With
      pos_anf = Selection.Start
      
     ->Position der nächsten eckigen Klammer auf bestimmen
      Selection.Collapse Direction:=wdCollapseEnd
      With Selection.Find
        .Forward = True: .ClearFormatting
        .Execute FindText:=]
      End With
      pos_end = Selection.End
      
     ->Markierung
      If (pos_anf < pos_end) And (pos_anf + 1 <> pos_end) Then
        ActiveDocument.Range(Start:=pos_anf, End:=pos_end).Select
      Else
        ActiveDocument.Range(Start:=pos_anf, End:=pos_anf + 1).Select
        MsgBox (keine->eckige Klammer zu' gefunden)
      End If
    End Sub
     
  5. Hallo,

    und vielen Dank für Deine Mühen. Werde das gleich morgen mal ausprobieren.

    Viele Grüße,

    Pampel
     
Die Seite wird geladen...

Word - Markieren in einem Makro - Ähnliche Themen

Forum Datum
Markieren in Word Windows XP Forum 30. Jan. 2006
Welches ist das letzte kaufbare Office und Fehler beim Scrollen in Word: Text verdoppelt sich Microsoft Office Suite 14. Juli 2016
Word und Powerpoint hakeln. Filme abspielen führt zu Aufhängen Windows 10 Forum 17. Dez. 2015
Webhosting für WordPress auf Windows Server Webentwicklung, Hosting & Programmierung 21. Juli 2015
Öffnen mit Doppelklick funktioniert bei Word u. Excel Dateien nichtmehr Microsoft Office Suite 10. Feb. 2015