コントロールの種類を取得する

 フォームやレポート上のコントロールの種類を取得する方法としてはTypeName関数を用いる方法とコントロールのControlTypeプロパティを用いる方法があります。
 以下では取得の例と値の一覧を示します。

値の取得例

f:id:accs2014:20190222144412p:plain:right:w500

 フォーム上にテキストボックス(名前は「テキスト1」)を置き、フォームモジュールに次のように記します。
 テキスト1をクリックすると、テキスト1をTypeName関数で評価した戻り値と、テキスト1のControlTypeプロパティの値を表示するというものです。

Private Sub テキスト1_Click()

    MsgBox TypeName(Me.テキスト1) & " / " & Me.テキスト1.ControlType

End Sub

f:id:accs2014:20190222144408p:plain:right:w400

 クリックしたところです。
 TypeName関数の戻り値は「TextBox」、ControlTypeプロパティの値は「109」であることがわかります。

TypeName関数及びControlTypeプロパティの値一覧

 各コントロールに対するTypeName関数の戻り値及びControlTypeプロパティの値は次のようになります。
 TypeName関数の戻り値の頭に「ac」をつければControlTypeプロパティの組み込み定数表現になると考えてほぼ間違いありませんが、タブコントロールのように微妙に異なるものもあります。
 また、従来のグラフ(「コントロール」メニューから貼り付けるもの)についてはTypeName関数の戻り値がObjectFrame(連結オブジェクトフレームと同じ)となる一方、ControlTypeの数値は連結オブジェクトフレームと異なるものとなります。組み込み定数表現は未確認です。

コントロールの種類TypeName関数
戻り値
ControlType
プロパティ(定数)
ControlType
プロパティ(数値)
テキストボックスTextBoxacTextBox109
ラベルLabelacLabel100
コマンドボタンCommandButtonacCommandButton104
タブTabControlacTabCtl123
ページ(タブの各ページ)PageacPage124
リンク
(※設置するとラベルそのものですので値はラベルと同じです)
LabelacLabel100
WebブラウザーWebBrowserControlacWebBrowser128
移動コントロール(ナビゲーションのコントロール内)NavigationControlacNavigationControl129
移動ボタン(ナビゲーションのコントロール内)NavigationButtonacNavigationButton130
ナビゲーションサブフォーム(ナビゲーションのコントロール内)
(※設置するとサブフォームそのものですので値はサブフォームと同じです)
SubFormacSubform112
フレーム(オプショングループのフレーム)OptionGroupacOptionGroup107
改ページPageBreakacPageBreak118
コンボボックスComboBoxacComboBox111
直線LineacLine102
トグルボタンToggleButtonacToggleButton122
リストボックスListBoxacListBox110
四角形RectangleacRectangle101
チェックボックスCheckBoxacCheckBox106
非連結オブジェクトフレームObjectFrameacObjectFrame114
添付ファイルAttachmentacAttachment126
オプションボタンOptionButtonacOptionButton105
サブフォーム(及びサブレポート)SubFormacSubform112
連結オブジェクトフレームBoundObjectFrameacBoundObjectFrame108
イメージImageacImage103
グラフ(コントロールメニューから貼り付ける従来のグラフ)ObjectFrame(未確認)113
グラフ(グラフの挿入コマンドで作成する新しいグラフ)ChartacChart133
ActiveXコントロールCustomControlacCustomControl119