OFF98: Visual Basic Modules Cannot Be Hidden or Protected (183534)



The information in this article applies to:

  • Microsoft Office 98 Macintosh Edition
  • Microsoft Excel 98 Macintosh Edition
  • Microsoft Word 98 Macintosh Edition
  • Microsoft PowerPoint 98 Macintosh Edition

This article was previously published under Q183534

SYMPTOMS

In the programs listed at the beginning of this article, you cannot hide or protect a module either manually or by using a macro.

CAUSE

This behavior is by design of the programs listed at the beginning of this article. In earlier versions of Microsoft Excel, macro sheets and Visual Basic modules are contained on tabs in a workbook. These tabs can be hidden or protected manually or by using the Visible, Protect, or Unprotect commands in a macro.

However, in Microsoft Excel 98, Microsoft Word 98, and Microsoft PowerPoint 98, Visual Basic modules are displayed in the Visual Basic Editor. Modules in the Visual Basic Editor cannot be hidden or protected in the same way that they were hidden or protected in earlier versions of Microsoft Excel.

WORKAROUND

To hide or protect a module in Microsoft Excel 98, create an add-in file. When you open an add-in file, it is not possible to view the module it contains, and code in the add-in cannot be viewed or modified.

To make an add-in file in Microsoft Excel 98, follow these steps:
  1. In the Visual Basic Editor, click <Project Name> Properties on the Tools menu, where <Project Name> is the name of the project for which you are creating an add-in.
  2. Click the Protection tab.
  3. Click the "Lock Project for Viewing" check box. Type a password in the Password box, and then type the password again in the Confirm Password box.
  4. Click OK.
  5. On the File menu, click "Close and Return To Microsoft Excel."
  6. In Microsoft Excel, click Save As on the File menu.
  7. In the Save As Type box, click Microsoft Excel Add-In or Microsoft Excel Workbook.

    If you want to change the name of the file, change it in the File Name box.
  8. Click Save.
Note that if you saved the file as an add-in, when you open the add-in, no window appears, and you cannot unhide the add-in. To view a module in the add-in or the workbook, follow these steps:
  1. On the Tools menu, point to Macro, and then click Visual Basic Editor.
  2. In the Visual Basic Editor, click the entry for the add-in in the Project pane.
  3. When you are prompted, type the password for the add-in, and then click OK.
You can now view a module in the add-in or workbook and make changes to your macro code.

MORE INFORMATION

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 sample procedures are provided to further clarify the difference between hiding modules in Microsoft Excel 5.0, and 98.
   Sub HideMe()
       ThisWorkbook.Modules("Module1").Visible = False
   End Sub

   Sub ShowMe()
       ThisWorkbook.Modules("Module1").Visible = True
   End Sub

   Sub ReallyHideModule2()
       ThisWorkbook.Modules("Module2").Visible = xlVeryHidden
   End Sub
				
Microsoft Excel 98:

Nothing happens when you run these sample procedures in Microsoft Excel 98. Because modules are not tabbed sheets, they no longer have a Visible property, and you cannot hide or unhide them.

Similarly, using the Protect or Unprotect methods to protect or unprotect a module does not work in Microsoft Excel 98. Because modules are not tabbed sheets, you cannot protect or unprotect them.

Microsoft Excel 5.0:

When you run the HideMe procedure, Microsoft Excel hides Module1. Running the ShowMe procedure unhides Module1. Running the ReallyHideModule2 procedure hides Module2 and prevents it from being unhidden without using a macro or code.

Modification Type:MajorLast Reviewed:6/18/2005
Keywords:kbbug kbpending kbProgramming KB183534