XL: How to Use the MultiPage Control in a UserForm

ID: Q155374

The information in this article applies to:

SUMMARY

This article explains how to use the MultiPage control in a UserForm and provides a Microsoft Visual Basic for Applications example.

MORE INFORMATION

Use a MultiPage control to work with a large amount of information that can be sorted into several categories. The MultiPage control allows you to visually combine and categorize this information on a single form.

The MultiPage control is a container for a collection of Page objects. Each Page object contains its own set of controls and does not necessarily rely on other Page objects for information. For example, you can add different controls in the client region for each Page object in the MultiPage control. By default, a MultiPage control contains two pages; you can add or remove pages as needed.

Adding a MultiPage Control to a UserForm

To add a MultiPage control to a UserForm in the Visual Basic Editor, follow these steps:

1. Click the UserForm to activate it.

2. On the View menu, click Toolbox to display the toolbox if it is not

   already displayed.

3. Click the MultiPage control button.

4. Draw the MultiPage control on the form.

Working with the Individual Pages in a MultiPage Control

To select an individual page in a MultiPage control, first click the MultiPage control, and then click the page.

NOTE: When you click the MultiPage control, the page at the front of the control is automatically selected.

After you select a page, you can change its properties, delete it, add new pages, or move pages by right-clicking the page and clicking the appropriate command on the shortcut menu.

Working Programmatically with the MultiPage Control

Microsoft provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft support professionals 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 needs. If you have limited programming experience, you may want to contact the Microsoft fee-based consulting line at (800) 936-5200. For more information about the support options available from Microsoft, please see the following page on the World Wide Web:

   http://www.microsoft.com/support/supportnet/refguide/

Use the SelectedItem property of the MultiPage control to indicate which Page object is selected in the MultiPage control at run time. For example, if you create a MultiPage control named MultiPage1, you can use the following statement to display the caption of the selected page:

   MsgBox MultiPage1.SelectedItem.Caption

The SelectedItem property is read-only and cannot be set at run time. If you need to programmatically set which page is selected, set the Value property for the MultiPage control. The following example selects the third page on MultiPage1:

   MultiPage1.Value = 2

NOTE: The values of the Pages in a MultiPage control start at zero. Thus, if the control contains three Pages, their values are 0, 1, and 2.

Example

The following example describes how to create a simple UserForm that implements a MultiPage control.

 1. In a new workbook in Microsoft Excel, point to Macro on the Tools menu,
    and then click Visual Basic Editor.

 2. On the Insert menu, click UserForm. Press F4 to activate the
    Properties window for the UserForm. Next to the Name property of the
    form, type "frmMain" (without the quotation marks) and type "Customer
    Information" (without the quotation marks) next to the Caption
    property.

 3. Click the form to select it. Click the MultiPage control on the Toolbox
    window, and draw a MultiPage control on the form. With the MultiPage
    control selected, press F4 to activate the Properties window. Type
    "mpgCustomer" (without the quotation marks) next to the Name property
    of the MultiPage control.

 4. Click the first page, and then activate the Properties window by
    pressing F4. Type "pgName" (without the quotation marks) next to the
    Name property, and type "Name" (without the quotation marks) next to
    the Caption property.

 5. Click the second Page, and activate the Properties window by
    pressing F4. Type "pgLocation" (without the quotation marks) next to
    the Name property, and type "Location" (without the quotation marks)
    next to the Caption property.

 6. Click the Name page, and add the following controls with the listed
    property settings:

    Control Type          Property                Value
    ----------------------------------------------------------

    Label                 Name                    lblFirstName
                          Caption                 First Name

    TextBox               Name                    txtFirstName

    Label                 Name                    lblLastName
                          Caption                 Last Name

    TextBox               Name                    txtLastName

 7. Click the Location page, and add the following controls with the
    listed property settings:

    Control Type          Property                Value
    ----------------------------------------------------------

    Label                 Name                    lblRegion
                          Caption                 Region

    TextBox               Name                    txtRegion

 8. Click the CommandButton on the Toolbox window, and add one
    CommandButton control on the form outside of the MultiPage control.
    Draw the CommandButton control in the upper right corner of the form.
    Type "OK" (without the quotation marks) next to the Caption property
    for the CommandButton, and type "cmdOK" (without the quotation marks)
    next to the Name property.

 9. Right-click the OK CommandButton control, and click View Code. Type the
    following code:

       Private Sub cmdOK_Click()

          ' Save the data in the TextBox controls to the
          ' active worksheet.

          With ActiveSheet
             .Range("A1") = Me.txtLastName.Text
             .Range("B1") = Me.txtFirstName.Text
             .Range("C1") = Me.txtRegion.Text
          End With

          ' Unload the form.
          Unload Me

       End Sub

10. On the Insert menu, click Module to insert a module into the project.

11. Type the following procedure in the Code window of the new module:

       Public Sub ShowForm()

          ' This procedure displays the form named frmMain.
          frmMain.Show

       End Sub

12. With the insertion point in the procedure ShowForm, press F5 to run the
    macro.

After you type values into the text boxes on the two Pages, click OK. The values from the text boxes will be inserted in the appropriate cells in the worksheet, and the UserForm will be dismissed.

REFERENCES

For more information about the MultiPage Control:

1. Create a MultiPage control on a UserForm.

2. Click the MultiPage control, and press F1.

Additional query words: custom dialog tabbed xl97 XL98

Keywords          : kbdta kbdtacode KbVBA 
Version           : WINDOWS:97; MACINTOSH:98
Platform          : MACINTOSH WINDOWS

Last Reviewed: May 18, 1999