![]() |
#4
|
||||
|
||||
![]()
Hi Marrick,
Try: Code:
Sub ListBkMrks() Application.ScreenUpdating = False Dim oBkMrk As Bookmark, Rng As Range, StrTxt As String, StrStory As String, wdDocIn As Document, wdDocOut As Document, Dest Dest = MsgBox(Prompt:="Output to New Document? (Y/N)", Buttons:=vbYesNoCancel, Title:="Destination Selection") If Dest = vbCancel Then Exit Sub Set wdDocIn = ActiveDocument If Dest = vbYes Then Set wdDocOut = Documents.Add If Dest = vbNo Then Set wdDocOut = wdDocIn With wdDocIn If .Bookmarks.Count > 0 Then StrTxt = vbCr & "Bookmark" & vbTab & "Page" & vbTab & "Line" & vbTab & "Story" & Chr(160) & "Range" & vbTab & "Contents" For Each oBkMrk In .Bookmarks StrTxt = StrTxt & vbCrLf & oBkMrk.Name & vbTab StrTxt = StrTxt & oBkMrk.Range.Characters.First.Information(wdActiveEndAdjustedPageNumber) StrTxt = StrTxt & vbTab & oBkMrk.Range.Information(wdFirstCharacterLineNumber) Select Case oBkMrk.StoryType Case 1: StrStory = "Main text" Case 2: StrStory = "Footnotes" Case 3: StrStory = "Endnotes" Case 4: StrStory = "Comments" Case 5: StrStory = "Text frame" Case 6: StrStory = "Even pages header" Case 7: StrStory = "Primary header" Case 8: StrStory = "Even pages footer" Case 9: StrStory = "Primary footer" Case 10: StrStory = "First page header" Case 11: StrStory = "First page footer" Case 12: StrStory = "Footnote separator" Case 13: StrStory = "Footnote continuation separator" Case 14: StrStory = "Footnote continuation notice" Case 15: StrStory = "Endnote separator" Case 16: StrStory = "Endnote continuation separator" Case 17: StrStory = "Endnote continuation notice" Case Else: StrStory = "Unknown" End Select StrTxt = StrTxt & vbTab & StrStory & vbTab & oBkMrk.Range.Text Next oBkMrk Else MsgBox "There are no bookmarks in this document", vbExclamation GoTo Done End If End With With wdDocOut Set Rng = .Range.Characters.Last With Rng .Text = StrTxt .Start = .Start + 1 .ConvertToTable Separator:=vbTab With .Tables(1) .AutoFitBehavior wdAutoFitContent .Columns.Borders.Enable = True .Rows.Borders.Enable = True .Rows.First.Range.Font.Bold = True End With End With End With Done: Set Rng = Nothing: Set wdDocIn = Nothing: Set wdDocOut = Nothing Application.ScreenUpdating = True End Sub Quote:
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
Dom37 | Word VBA | 2 | 10-31-2011 03:28 AM |
Bookmarks for a PDF? | Ownaholic | Word | 0 | 10-30-2010 12:27 AM |
![]() |
Jaffa | Excel | 1 | 10-23-2010 02:39 PM |
Macro to remove duplicates in Refrences list | HowardC | Word VBA | 0 | 05-20-2010 09:57 AM |
Show bookmarks | dempen | Word | 2 | 01-14-2010 11:47 PM |