HOME > 即効テクニック > Excel VBA > ユーザーフォーム関連のテクニック > フォームに配置されたコントロール名を全て取得する

即効テクニック

ユーザーフォーム関連のテクニック

フォームに配置されたコントロール名を全て取得する

(Excel 97/2000)
フォームに配置された全てのコントロールに対する操作やコントロールの数の取得、プロパティの設定/取得に使用できるControlsコレクションと、For Each...Nextステートメントを使って、コントロール名を取得します。
フォームに複数のコントロールとコマンドボタン「CommandButton1」を配置して、コマンドボタンがクリックされた時に発生するイベント「Click」に次のプロシージャを作成してください。
「"フォームに配置されている全てのコントロール名"」という文字列と、全てのコントロールの名前に連番が振られたメッセージボックスが表示されます。
Private Sub CommandButton1_Click()
    Dim MyControl As Control
    Dim AllName   As String
    Dim i         As Integer

    AllName = "フォームに配置されている全てのコントロール名" & Chr(13)

    For Each MyControl In Controls
        i = i + 1
        AllName = AllName & Chr(13) & _
                  i & ":MyControl.Name = " & MyControl.Name
    Next

    MsgBox AllName

End Sub
【メッセージボックスに表示される例】
フォームに配置されている全てのコントロール名

1:MyControl.Name = Image1
2:MyControl.Name = TextBox1
3:MyControl.Name = TextBox2
4:MyControl.Name = CommandButton1

「MsgBox AllName」を「Debug.Print AllName」にすると、イミディエイトウィンドウに出力されます。