Pracoval jsem posledních pár dní s větším dokumentem ve Wordu a přestalo mě bavit hledat, kde jsme skončil. Napadlo mě napsat makro, ale naštěstí tak už někdo učinil. Potíž je ale v tom, že toto makro zanechá za sebou v dokumentu několik viditelných znaků (v tomto případě 14 asterixů ), které tam samozřejmě nechceme…
Trošku jsem to makro upravil, takže nyní jsou znaky této „záložky“ schované:
Sub AutoOpen()
‚
‚ GoToMyBookmarkText
‚
‚
On Error Resume NextSelection.Find.ClearFormatting
With Selection.Find
.Text = „**************“
.Replacement.Text = „“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.Font.Hidden = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
If Selection = „**************“ Then
Selection.Delete
End IfEnd Sub
Sub AutoClose()
‚
‚ CreateMyBookmark
‚
‚
Selection.TypeText Text:=“**************“
Selection.MoveLeft Unit:=wdCharacter, Count:=14, Extend:=wdExtend
With Selection.Font
.Hidden = True
End With
End Sub
Pak mě ale napadlo, proč nepoužít záložky, které ve Wordu existují. Zdrojový kód makra je tak mnohem jednodušší, nemluvě o čistotě vzniklého dokumentu.
K nainstalování makra je třeba několika jednoduchých kroků (mám Word 2007, čili konkrétní kroky se mohou trochu lišit v jiných verzích. Mám pouze anglickou verzi Wordu, takže kroky dole jsou přeloženy z angličtiny, možná nepřesně):
- na záložce Zobrazení otevřete dialog Marka
- klikněte na Vytvořit. Otevře se nové okno, najeďte kursorem na konec.
- skopírujte a vložte kód makra dole
Sub AutoClose()
‚ Auto set last cursor position bookmark
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:=“MyLastKnownPosition“
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
End SubSub AutoOpen()
‚ Find last cursor position bookmark, set cursor, and delete the bookmark
If ActiveDocument.Bookmarks.Exists(„MyLastKnownPosition“) = True Then
Selection.GoTo What:=wdGoToBookmark, Name:=“MyLastKnownPosition“
ActiveDocument.Bookmarks(„MyLastKnownPosition“).Delete
With ActiveDocument.Bookmarks
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
End IfEnd Sub
Doufám, že vám tato dvě makra ušetří trochu času a nervů!
Zůstaňte ještě chvilku, napište nám něco...