基礎知識
時間があればワークシート内のフォーム、フォーム コントロール、および ActiveX コントロールの概要を参照すること。
簡単な機能を実装するには ActiveX コントロールを使用するのが妥当。
フォームコントロール、ユーザコントロールについては触れない。
コントロールの使い方
ActiveX コントロールをワークシートに配置する
開発タブの挿入から選択する。コントロールのサイズなどを変更するにはデザインモードを使用する。
イベントの設定
コントロールとVBAコード(Subプロシージャ)はプロシージャ名によって関連付けられる。
命名構文は ControlName_EventName
のようにする。
Private Sub CommandButton1_Click()
' オブジェクト名が CommandButton1 の
' コントロールが Click された再に実行される
End Sub
簡単には下記の赤枠のあたりを弄る。
VBAからコントロールを参照する
' ActiveX コントロールオブジェクトの取得
' インデックス番号で選択する場合
dim obj
set obj = activeSheet.OLEObjects.item(1) ' インデックスは 1 から
' オブジェクト名が CommandButton1 である場合
dim obj2
set obj2 = activeSheet.OLEObjects.item("CommandButton1")
オブジェクト名を調べるには開発タブのプロパティボタンをクリックし、プロパティウィンドウを表示する。プロパティウィンドウには、現在フォーカスされているオブジェクトのプロパティが表示される。調査対象のコントロールがうまくフォーカスできない場合はデザインモードを使用する。
API(MSDNリンク)
- OLEObjects オブジェクト (Excel)
- OLEObject メンバー (Excel)
- ActiveX コントロール ※ Excel で使用できる ActiveX コントロールオブジェクトの一覧?
- Access オブジェクト モデル リファレンス (Access 2013 開発者用リファレンス) ※エクセルの ActiveX コントロールリファレンスが見当たらなかったので Access のリファレンス