![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Lesezeichen verwenden |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||||||||||
![]() |
|
![]() |
In der VBA-IDE gibt es die praktischen Lesezeichen, zum schnelleren Navigieren zwischen verschiedenen Zeilen. Diese Lesezeichen sind besonders bei umfangreichen Makros/Projekten hilfreich, wenn z.B. verschiedene Stellen verglichen werden sollen. ![]() In Word existieren diese Lesezeichen nicht direkt und der Umweg über manuelle Textmarken ist nicht wirklich praktisch. Mit Hilfe einiger Makros lässt sich diese Funktionalität aber auch in Word-Dokumente einbinden.
Der folgende Auszug aus dem zur Verfügung stehenden Modul setzt ein neues Lesezeichen, sofern noch kein Lesezeichen vorhanden ist. Sub MarkeSetzen() Dim i, j As Integer Dim sFilename, sTMName As String On Error GoTo ende ' Bereits eine Marke vorhanden? If Not MarkeLoeschen Then ' Pfad zum Lesezeichen-Symbol. Ggf. anpassen ChangeFileOpenDirectory "D:\Lesezeichen\" sFilename = "D:\Lesezeichen\set.gif" Set shp = ActiveDocument.Shapes.AddPicture(FileName:=sFilename, _ LinkToFile:=False, SaveWithDocument:=True, Anchor:=Selection.Range) 'Bild positionieren PositionierenMarke 'Textmarke und Bild setzen If Len(Selection.Range.Text) > 0 Then Selection.Range.Collapse Direction:=wdCollapseEnd End If sTMName = "_TM_" & Selection.Information(wdActiveEndAdjustedPageNumber) & _ Selection.Information(wdFirstCharacterLineNumber) Selection.Bookmarks.Add Name:=sTMName, Range:=Selection.Range End If ende: End Sub Mit dem Funktionaufruf Function MarkeLoeschen() As Boolean Dim i, j, sLine, bLine As Integer Dim sTrange As Range Dim myMarke As Bookmark Dim sName As String MarkeLoeschen = False ActiveDocument.Bookmarks.ShowHidden = True ActiveDocument.Bookmarks.DefaultSorting = wdSortByLocation If Selection.Bookmarks.Count > 0 Then Set sTrange = Selection.Paragraphs(1).Range sLine = Selection.Information(wdFirstCharacterLineNumber) For Each myMarke In Selection.Bookmarks bLine = myMarke.Range.Information(wdFirstCharacterLineNumber) sName = myMarke.Name If (sName Like "_TM*") And (sLine = bLine) Then Set shp = sTrange.ShapeRange(1) ActiveDocument.Bookmarks(sName).Delete shp.Delete MarkeLoeschen = True Exit For End If Next myMarke End If End Function Das vollständige Modul mit allen Makros und den Symbolen befindet sich in der Download-Datei. In dem Modul ist auch ein Installationsmakro (SymInstall) zur Erstellung der Symbolleiste. Bei der Installation muss der Pfad zu den mitgelieferten Symbolen angegeben werden. |
![]() |
![]() |
Besucher: 0 online | 0 heute | 0 diesen Monat | 2266059 insgesamt | Seitenaufrufe: 143 | ![]() |
Letzte Änderung: 24.06.2006 | ![]() |
© 2001-18 Christian Freßdorf | ![]() |
Alles Große und Edle ist einfacher Art. Gottfried Keller |
powered by phpCMS and PAX |