This article has been archived. It is offered "as is" and will no longer be updated.
For a Microsoft Excel 2002 version of this article, see 287482.
For a Microsoft Excel 98 version of this article, see 184507.
For a Microsoft Excel 97 version of this article, see 142140.
This article contains a sample Microsoft Visual Basic for Applications macro (Sub procedure) that adds the workbook path and file name to the footer of a worksheet.
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. The following macro adds the current path and file name to the left footer of the active worksheet. The workbook must be saved before you can add any path information to the footer.
Sub UpdateFooter() ActiveSheet.PageSetup.LeftFooter = ActiveWorkbook.FullName End Sub
To insert a Visual Basic module into a workbook in Microsoft Excel, press ALT+F11 to start the Visual Basic Editor; then, click Module on the Insert menu.
Before you run the macro, switch to the workbook and the sheet for which you want to display the path in the footer. After you run the macro, the footer should contain the complete path and file name of the workbook.
You can also use the BeforePrint workbook event to run a Sub procedure that adds the current path and file name to the left footer of the active worksheet before the workbook is printed. The workbook must be saved before you can add any path information to the footer. To create the Sub procedure in the active workbook, follow these steps:
In the Project Explorer window of Visual Basic Editor, double-click ThisWorkbook in the current project.
This opens a module for code that is associated with the workbook.
In the Object list for this module, click Workbook.
In the Procedure list for this module, click BeforePrint.
Enter the code so that the Workbook_BeforePrint procedure resembles the following:
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ThisWorkbook.Path = "" Then ActiveSheet.PageSetup.LeftFooter = ThisWorkbook.Name Else ActiveSheet.PageSetup.LeftFooter = ThisWorkbook.Path & _ Application.PathSeparator & ThisWorkbook.Name End If End Sub
On the File menu, click Close and Return to Microsoft Excel.
When you print the workbook, the footer is automatically updated before the workbook is printed.
Using Ampersand (&) in the File Name
If the file name contains an ampersand (&), it may not display correctly. This is because Excel treats the ampersand as a special character in the header and footer. To display an ampersand in the header and footer, repeat the ampersand twice (&&). To do this in the macro, use the Replace function in Visual Basic for Applications:
Sub UpdateFooter() ActiveSheet.PageSetup.LeftFooter = Replace(ActiveWorkbook.FullName, "&", "&&")End Sub
For more information about the LeftFooter Property, in the Visual Basic Editor, click Microsoft Visual Basic Help on the Help menu, type LeftFooter property in the Office Assistant or the Answer Wizard, and then click Search to view the topic.
xl2000 custom header header/footer