[ VBA ] ユーザーフォームのコントロールの一覧取得と種類の判別

Pocket

VBA のユーザーフォーム上に、テキストボックスやチェックボックスなどを追加することができます。ここでは、これらのコントロールの一覧を取得したり種類の判別を行うサンプルスクリプトを掲載しています。

スポンサーリンク

コントロールの一覧と種類の判別

次のスクリプトは、ユーザーフォーム上のコントロールの一覧を取得して、そのコントロールオブジェクトがテキストボックスの場合に限り、その内容をクリアしています。

' Controls でコントロールの一覧を取得できる
For Each o In Controls
    ' コントロールのタイプ名が TextBox であるか判定
    If TypeName(o) = "TextBox" Then
        ' テキストの内容をクリアする
        o.Text = ""

        ' オブジェクト名を出力する
        MsgBox o.Name
    End If
Next

このように、テキストボックスだけではなく、チェックボックスやコンボボックスであるかを判定し、それぞれの処理を行うことができます。

全てのコントロールに同一処理をしたい場合などに役に立つかもしれません。

なお、TypeName関数が、それぞれのコントロールのときに返す文字列は、プロパティウィンドウでコントロールの一覧からコントロールを選択できますが、そのオブジェクト名の右側にある文字列のような気がします。

ComboBox であったり、CheckBox であったり、CommandButton などです。

間違っていたらごめんなさい m(__)m

MSDN では、TypeName関数がコントロールの場合に返す文字列に関する詳細までは記載されていないようです。次のような感じでコントロールについてはマルっと書かれていました。

記載あればアドレス教えて頂けるとありがたいです。

TypeName によって返される文字列は以下のいずれかです。

返される文字列変数
object typeobjecttype 型のオブジェクト
Byteバイト値
Integer整数
Long長整数
Single単精度浮動小数点数
Double倍精度浮動小数点数
Currency通貨値
Decimal10 進値
Date日付値
String文字列
Booleanブール値
Errorエラー値
Empty初期化されていません
Null有効な値がありません
Objectオブジェクト
Unknown不明な型のオブジェクト
Nothingオブジェクトを参照しないオブジェクト変数
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *