Group:  Microsoft Word ยป microsoft.public.word.docmanagement
Thread: Printing Building Blocks Auto Text List - Microsoft 2007

Geek News

Printing Building Blocks Auto Text List - Microsoft 2007
SOS 12/5/2008 10:08:02 PM
I figured out how to use auto text and use it frequently. However, I have
added so many words and phrases that I am beginning to loose track of what is
in there. I need to print out a list of what I have already put in so that I
can see what still needs to be added. Looking at the list is not enough
because the preview is too tiny to decipher. How do I print a list of all
the shortcuts and the word/phrases that will pop in when I hit F3?
Re: Printing Building Blocks Auto Text List - Microsoft 2007
"Greg Maxey" <gmaxey[ at ]mIKEvICTORpAPAsIERRA.oSCARrOMEOgOLF> 12/5/2008 10:41:19 PM
To answer your specific question you can create a list of building block
names and their values using a macro. Note ** representes a non text value:

Sub ListAllBuildingBlocks()
Dim oTmp As Template
Dim oBBT As BuildingBlockType
Dim oCat As Category
Dim oRng As Word.Range
Dim oBB As BuildingBlock
Dim h As Long
Dim i As Long
Dim j As Long
Dim k As Long
Set oRng = ActiveDocument.Range
For h = 1 To Templates.Count
Set oTmp = Templates(h)
For i = 1 To oTmp.BuildingBlockTypes.Count
Set oBBT = oTmp.BuildingBlockTypes(i)
If oBBT.Categories.Count > 0 Then
'Categories can exist that don't have any BBEs
If ValidateCategories(oBBT) = True Then
oRng.InsertAfter oTmp.Name & "/" & "Building Block Type: " &
oBBT.Name + vbCr
oRng.Paragraphs.Last.Previous.Format.Shading. _
BackgroundPatternColor = wdColorGray25
For j = 1 To oBBT.Categories.Count
Set oCat = oBBT.Categories(j)
If oCat.BuildingBlocks.Count > 0 Then
oRng.InsertAfter "Buidling Block Category: " & oCat.Name + vbCr
oRng.Paragraphs.Last.Previous.Format.Shading. _
BackgroundPatternColor = wdColorGray10
For k = 1 To oCat.BuildingBlocks.Count
oRng.InsertAfter oBBT.Categories(j).BuildingBlocks(k).Name +
vbTab + oBBT.Categories(j).BuildingBlocks(k).Value + vbCr

Next
End If
Next
End If
End If
Next
Next
End Sub
Function ValidateCategories(ByRef BBT As BuildingBlockType) As Boolean
Dim i As Long
For i = 1 To BBT.Categories.Count
If BBT.Categories(i).BuildingBlocks.Count > 0 Then
ValidateCategories = True
Exit Function
End If
Next
End Function

For some additional information on building blocks and tools for enhancing
thier use see:

http://gregmaxey.mvps.org/Word2007_Building_Blocks_&_AutoText.htm

SOS wrote:
[Quoted Text]
> I figured out how to use auto text and use it frequently. However, I
> have added so many words and phrases that I am beginning to loose
> track of what is in there. I need to print out a list of what I have
> already put in so that I can see what still needs to be added.
> Looking at the list is not enough because the preview is too tiny to
> decipher. How do I print a list of all the shortcuts and the
> word/phrases that will pop in when I hit F3?

--
Greg Maxey - Word MVP

My web site http://gregmaxey.mvps.org
Word MVP web site http://word.mvps.org



Re: Printing Building Blocks Auto Text List - Microsoft 2007
"Greg Maxey" <gmaxey[ at ]mIKEvICTORpAPAsIERRA.oSCARrOMEOgOLF> 12/6/2008 5:46:15 PM
This will produce a formatted document containing the list of
BuildingBlocks.
Option Explicit
Dim bbArray()
Dim oTmp As Template
Dim i As Long
Dim j As Long
Sub BuildList()
Dim lngCount As Long
Dim BBC As Category
Dim BBT As BuildingBlockType
lngCount = 0
For Each oTmp In Templates
For i = 1 To oTmp.BuildingBlockEntries.Count
lngCount = lngCount + 1
Next
Next
If lngCount > 0 Then
ReDim bbArray(0 To lngCount - 1, 1 To 5)
Else
ReDim bbArray(0)
End If
j = 0
For Each oTmp In Templates
For i = 1 To oTmp.BuildingBlockEntries.Count
Set BBT = oTmp.BuildingBlockEntries(i).Type
Set BBC = oTmp.BuildingBlockEntries(i).Category
bbArray(j, 1) = oTmp.BuildingBlockEntries(i).Name
bbArray(j, 2) = oTmp.Name
bbArray(j, 3) = oTmp.BuildingBlockEntries(i).Value
bbArray(j, 4) = BBT.Name
bbArray(j, 5) = BBC.Name
j = j + 1
Next
Next
CreateList
Set BBT = Nothing
Set BBC = Nothing
StatusBar = "List complete"
System.Cursor = wdCursorNormal
End Sub
Sub CreateList()
Dim oDoc As Word.Document
Dim oRng As Word.Range
Dim pStr As String
Dim oTbl As Word.Table
Set oDoc = Documents.Add
System.Cursor = wdCursorWait
With oDoc.PageSetup
.Orientation = wdOrientLandscape
.LeftMargin = 36
.RightMargin = 36
End With
Set oRng = oDoc.Range
Set oTbl = oDoc.Tables.Add(oRng, UBound(bbArray) + 3, 5)
StatusBar = "Creating list. Please wait"
Application.ScreenUpdating = False
With oTbl
.Columns(1).Width = 100
.Columns(2).Width = 100
.Columns(3).Width = 300
.Columns(4).Width = 110
.Columns(5).Width = 110
.Rows(1).Cells.Merge
.Cell(1, 1).Range.Text = "BuildingBlocks"
For i = 1 To 5
.Cell(2, i).Range.Text = Choose(i, "Name", "Template", "Value",
"Gallery", "Category")
Next
For i = 0 To UBound(bbArray)
For j = 1 To 5
.Cell(i + 3, j).Range.Text = bbArray(i, j)
Next j
Next i
.Rows(1).Shading.BackgroundPatternColor = wdColorGray25
.Rows(1).Cells(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Rows(2).Shading.BackgroundPatternColor = wdColorGray10
.Rows.AllowBreakAcrossPages = False
For i = -6 To -1
With .Borders(i)
.LineStyle = Options.DefaultBorderLineStyle
.LineWidth = Options.DefaultBorderLineWidth
.Color = Options.DefaultBorderColor
End With
Next i
If MsgBox("Do you want to sort the list by building block name?", _
vbQuestion + vbYesNo, "Sort List") = vbYes Then
.Rows(1).ConvertToText
.Sort ExcludeHeader:=True, FieldNumber:="Column 1", SortFieldType _
:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending
End If
End With
Application.ScreenUpdating = True
Beep
End Sub


SOS wrote:
[Quoted Text]
> I figured out how to use auto text and use it frequently. However, I
> have added so many words and phrases that I am beginning to loose
> track of what is in there. I need to print out a list of what I have
> already put in so that I can see what still needs to be added.
> Looking at the list is not enough because the preview is too tiny to
> decipher. How do I print a list of all the shortcuts and the
> word/phrases that will pop in when I hit F3?

--
Greg Maxey - Word MVP

My web site http://gregmaxey.mvps.org
Word MVP web site http://word.mvps.org



Home | Search | Terms | Imprint Contact
Newsgroups Reader - provided by WiredBox.Net