2
www.ChF-Online.de  

Textmarkenübersicht

   Neuigkeiten
   API-Aufrufe in VBA
   VBA2HTML
   Word
   Word-VBA
aktiv aktiv Verschiedenes
 Dateiname ohne Endung
 Dokumentstrukturanzeige
 Fenster anordnen
 Fensterliste
 Fensterliste (II)
 Kalender erstellen
 Kommentarinformationen
 Lesezeichen
 Beliebigen Ordner öffnen
 Position der Einfügemarke
 Seitenanfang/-ende
 Shapes ansprechen
 Sicherheitskopien erstellen
 Word-Startparameter
 Word-Startparameter II
 Startordner "Bild einfügen"
 Tags finden u. bearbeiten
 Tags finden/bearbeiten (II)
 Text2WordArt
 Textbausteine verwenden
aktiv  Textmarken (I)
 Textmarken (II)
 Überschrift zu Textmarke
 VBA-Konverter
 Wasserzeichen
 Zeichen tauschen
 Feld-Arbeiten
 Form-Sachen
 Menü-/Symbolleisten
 VBA und Lotus Notes
 VBA und Mail
 Inside VBAIDE
 Von Word nach Outlook
 Fix-und-Fertiges/Projekte
   Word2007 (RibbonX)
   Word2010 (RibbonX)
   Outlook-VBA
   Links zu VB(A)
   DocToHelp
   Netport Express XL
   Astronomie
   Gästebuch
   Volltextsuche
   Sitemap
   Buch:Word-Programmierung
   Impressum & Kontakt
   Datenschutzerklärung
Getestet unter Word97Getestet unter Word2000  
Makro/Datei speichern
Print

Wer viel mit Textmarken arbeitet kennt den umständlichen Weg, jedesmal über das Menü den Punkt Textmarken auszuwählen, um zu einer bestimmten Textmarke springen zu können. Alternativ kann man sich für diesen Menüpunkt auch ein Tastenkürzel definieren, das dann dieses Dialogfenster öffnet.
Mit folgenden Makros werden alle Textmarken mit ihrem Namen in eine Auswahlliste geschrieben und können durch Auswahl in dieser Liste direkt im Text angesprungen werden. Insgesamt werden vier Makros verwendet, wobei zwei nur die Aufgabe haben eine zusätzliche Symbolleiste anzulegen ( TMarkMenue) und ggf. wieder zu löschen ( TMMenueloeschen). In die Symbolleiste wird, sofern noch nicht vorhanden, die Schaltfläche/Auswahlliste eingefügt und die Verknüpfung mit den Makros hergestellt.

Die Suche und Auflistung aller Textmarken erfolgt innerhalb des Makros  Textmarkensuchen.
In einer Schleife werden dazu alle Textmarken durchlaufen und in die Auswahlliste mit dem vergebenen Namen eingetragen. Die Funktion  TMarkAuswahl markiert die in der Auswahlliste ausgewählte Textmarke, so dass schnell zwischen den verschiedenen Textmarken im Dokument gewechselt werden kann.

Das temporäre Anlegen der Symbolleisten sorgt dafür, dass beim Beenden die Symbolleiste automatisch wieder gelöscht wird und keine Nachfrage zu Speichern angezeigt wird. Soll die Symbolleiste dauerhaft angezeigt und mitgespeichert werden, muss die Konstante temporary auf True gesetzt werden.

Option Explicit 
Dim cbar1 As CommandBar
Dim cbar1cb As CommandBarComboBox
Dim cbar1btn As CommandBarButton

Sub TMarkMenue() Dim bfound As Boolean ' Symbolleiste suchen und ggf. temporär anlegen For Each cbar1 In CommandBars If cbar1.Name = "MeineTextmarken" Then Set cbar1 = CommandBars("MeineTextmarken") bfound = True Exit For End If Next cbar1 If Not bfound Then Set cbar1 = CommandBars.Add(Name:="MeineTextmarken", _ Position:=msoBarTop, temporary:=True) End If cbar1.Visible = True ' Schaltlfäche hinzufügen Set cbar1btn = CommandBars("MeineTextmarken").FindControl( _ Type:=msoControlButton, _ ID:=CommandBars("Standard").Controls("Seitenansicht").ID) If cbar1btn Is Nothing Then Set cbar1btn = cbar1.Controls.Add(Type:=msoControlButton, _ ID:=CommandBars("Standard").Controls("Seitenansicht").ID, temporary:=True) cbar1btn.TooltipText = "Textmarken listen" End If cbar1btn.OnAction = "Textmarkensuchen" ' Auswahlliste hinzufügen Set cbar1cb = CommandBars("MeineTextmarken").FindControl( _ Type:=msoControlComboBox, ID:=1) If cbar1cb Is Nothing Then Set cbar1cb = cbar1.Controls.Add(Type:=msoControlComboBox, _ ID:=1, temporary:=True) cbar1cb.TooltipText = "Textmarke anzeigen" cbar1cb.Width = 150 End If cbar1cb.OnAction = "TMarkAuswahl" End Sub
Sub TMMenueloeschen() Set cbar1btn = CommandBars("MeineTextmarken").FindControl( _ Type:=msoControlButton, _ ID:=CommandBars("Standard").Controls("Seitenansicht").ID) cbar1btn.Delete Set cbar1cb = CommandBars("meineTextmarken").FindControl( _ Type:=msoControlComboBox, ID:=1) cbar1cb.Delete CommandBars("meineTextmarken").Delete Set cbar1btn = Nothing Set cbar1cb = Nothing Set cbar1 = Nothing End Sub
Sub Textmarkensuchen() Dim i, j As Integer Dim sTMLaenge As Integer Dim sTMark As Bookmark Dim rngTMark As Range Dim rngDoc As Range If Application.Documents.Count = 0 Then Exit Sub i = 0: j = 0 sTMLaenge = 0 TMarkMenue Set cbar1cb = CommandBars("MeineTextmarken").FindControl( _ Type:=msoControlComboBox, ID:=1) cbar1cb.Clear ActiveDocument.ActiveWindow.View.ShowFieldCodes = Fals Set rngDoc = ActiveDocument.Range rngDoc.WholeStory For Each sTMark In rngDoc.Bookmarks Set rngTMark = sTMark.Range cbar1cb.AddItem sTMark.Name If Len(sTMark.Name) > sTMLaenge Then sTMLaenge = Len( _ (sTMark.Name) i = i + 1 Next sTMark If Not i = 0 Then cbar1cb.ListIndex = 1 cbar1cb.Width = sTMLaenge * 6.5 + 5 End Sub
Function TMarkAuswahl() Dim gefunde As Boolean Set cbar1cb = CommandBars("MeineTextmarken").FindControl( _ Type:=msoControlComboBox,ID:=1) With cbar1cb ActiveDocument.Bookmarks(.ListIndex).Select End With 'weiter: End Function

 Besucher: 0 online  |  0 heute  |  0 diesen Monat  |  2219164 insgesamt | Seitenaufrufe: 91   Letzte Änderung: 24.06.2006 © 2001-18 Christian Freßdorf
  Die letzte Stimme, die man hören wird, bevor die Welt explodiert, wird die eines Experten sein, der sagt: "Das ist technisch unmöglich!"
Sir Peter Ustinov
 powered by phpCMS and PAX