Name

controls.Add(ProgID [, Name] [, Visible])

Synopsis

Adds a control to the form or frame and returns a reference to that control.

Argument

Settings

ProgID

A string identifying the class name and version of the control to add. See Table 20-6 for a list of the values for common controls.

Name

The name to assign the control.

Visible

True displays the control; False hides it. Default is True.

Table 20-6. ProgIDs for Forms 2.0 controls

Control

Class name and version (ProgID)

CheckBox

Forms.CheckBox.1

ComboBox

Forms.ComboBox.1

CommandButton

Forms.CommandButton.1

Frame

Forms.Frame.1

Image

Forms.Image.1

Label

Forms.Label.1

ListBox

Forms.ListBox.1

MultiPage

Forms.MultiPage.1

OptionButton

Forms.OptionButton.1

ScrollBar

Forms.ScrollBar.1

SpinButton

Forms.SpinButton.1

TabStrip

Forms.TabStrip.1

TextBox

Forms.TextBox.1

ToggleButton

Forms.ToggleButton.1

Tip

Even though the version number in the ProgID is 1, these names refer to the Forms 2.0 controls.

The following code creates label and text box controls for each of the columns in a list created in the data form example created earlier:

 Private Sub UserForm_Initialize( ) Dim ws As Worksheet, lc As ListColumn, _ c As Control, tp As Single, lft As Single, wd As Single, _ ht As Single Set ws = Worksheets("DataForm") ' Control's initial height and width values. wd = 60 ht = 18 ' Add a label and a text box for each list column. For Each lc In ws.ListObjects(1).ListColumns ' Add a label. Set c = Frame1.Controls.Add("Forms.Label.1", ...

Get Programming Excel with VBA and .NET now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.