O'Reilly logo

Writing Word Macros, Second Edition by Steven Roman PhD

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Example: Printing Document Statistics

I will now present the application mentioned earlier. In particular, the code in Example 19-1 gathers statistics about the active document and places that data in a table in a new document. The only point to note is that I must reference the dialog object before creating a new document, since that new document will become the active document and I will lose the statistics on the original document.

Example 19-1. The PrintStatistics Routine

Sub PrintStatistics()
' Prints statistics on the active document
' to a table in a new document
Dim dial As dialog
Dim tbl As Table
Dim sName As String
Dim sProp As String

' Get this now, before the active document changes
Set dial = Dialogs(wdDialogDocumentStatistics)

' Create new document
Documents.Add

' Insert document heading
Selection.InsertAfter "Document Statistics. Created " & — Now() & vbCr & vbCr ' Give it a nice style Selection.Style = wdStyleHeading1 Selection.Collapse wdCollapseEnd ' Create a table with 2 columns Set tbl = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=1, — NumColumns:=2) ' Print the document statistics to the table ' adding rows as we go tbl.Cell(1, 1).Select Selection.Text = "File Name" Selection.Font.Bold = True Selection.Move wdCell Selection.Text = dial.FileName ' DoNextRow adds a new row and ' fills it with the next piece of data DoNextRow tbl, "Directory", dial.Directory DoNextRow tbl, "Template", dial.Template DoNextRow tbl, "Title", dial.Title DoNextRow tbl, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required