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 オブジェクトを参照しないオブジェクト変数