This article gives you an introduction to VBA in FrontPage.
My First VBA Macro
My first task that I wanted to be able to do was to change the title at the top of my menu on every page. Of course we have our critical files backed up before running experimental code on them. Still the best procedure is to write code which operates on one file, and fully debug it before using it on the full set.
Here is the subroutine I wrote to make the change to the active file.
Sub ChangeMenuTitle()
Dim fpDoc As FPHTMLDocument
Set fpDoc = ActiveDocument
Dim myTable As FPHTMLTable
Set myTable = fpDoc.all.tags("table")(0)
myTable.Id = "menu"
Dim strRow As String
Dim myRow As FPHTMLTableRow
Set myRow = myTable.rows(0)
Dim myCell As FPHTMLTableCell
Set myCell = myRow.cells(0)
strRow = myCell.innerText
If strRow = "ATL & COM Notebook" Then
myCell.all.tags("i")(0).innerText = "Components Notebook"
strRow = myCell.innerText
End If
End Sub
This is working code, not optimized and not very reusable, but useful for learning purposes, and getting the job done. First I obtain the ActiveDocument object, then I obtain the first table. I know that the table I want to work with is the first on the page so I use fpDoc.all.tags("table")(0) to obtain the first table on my page. Since I want to write smarter code in the future, I set the Id for this table to "menu". Then I go through a two step process, to obtain the first row in the table, then the first cell in the row. Once I have this cell I check to see that the contents are "ATL & COM Notebook", to make sure I am changing the right text. Now I change the text inside the "<I> tags to "Components Notebook".
Now that we have code which successfully makes the change to one page, lets write the code to apply this change to all the pages in the site.
Comments