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 MarkeLoeschen wird geprüft, ob an der aktuellen Position bereits ein Lesezeichen gesetzt ist. Ist dieses der Fall, wird das vorhandene Lesezeichen gelöscht und die Funktion liefert als Ergebnis TRUE zurück. Dieser Rückgabewert wird ausgewertet und nur für den Fall, dass er den Wert FALSE besitzt, wird das Lesezeichen gesetzt. 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 | 2199797 insgesamt | Seitenaufrufe: 36 | Letzte Änderung: 24.06.2006 | © 2001-18 Christian Freßdorf | ||||
Es gibt kaum eine größere Enttäuschung, als wenn du mit einer recht großen Freude im Herzen zu gleichgültigen Menschen kommst. Christian Morgenstern |
powered by phpCMS and PAX |