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


Pocket

Leave a Comment

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