お知らせ
こちらの記事は、電子書籍「難しく考えないExcel VBA基礎学習編」として出版されました。記事は途中までが試し読みの対象となります。
目標
VBAのイベントについて概要を理解する
「フォームコントロール」「ActiveX コントロール」の違いを確認する
「フォームコントロール」を理解して利用できる
「ActiveX コントロール」を理解して利用できる
VBAのイベント
VBAのイベントの概要
VBAのイベントとは
VBAのイベントとはプロシージャが動作するための「きっかけ」のことをいいます。これまで、この記事ではプロシージャを動かすのにVBEの実行ボタンを利用してきましたが、プロシージャのイベントはVBE内の実行ボタン以外にもExcelのシートに配置できる「フォームコントロール」や「ActiveX コントロール」からの実行、オブジェクトを利用した「セルの値の変更時のイベント」「シートの選択時のイベント」「ブックを開いた時のイベント」(イベントプロシージャ)での実行など様々あります。この記事では「フォームコントロールボタン」や「ActiveX コントロールボタン」について触れています。
2つのコントロールの違い
2つのコントロールの違い
コントロールの位置を確認する
2つのコントロールの利用にはいずれも「開発」タブの「挿入」を展開して利用します。

「挿入」を選択すると「フォームコントロール」と「ActiveXコントロール」が表示されます。

2つのコントロールの違い
いずれのコントロールでも同様の操作を行うことができますが、「フォームコントロール」は、ワークシート内の値やフォームに入力された設定値を取得して、ワークシートへ返すという処理が簡単に行えるという特徴があります。VBAを扱いたいときは「マクロの登録」を利用します。「ActiveX コントロール」には専用のVBAのイベントが準備されます。設定もVBEを通して行うようになっています。具体的な違いを「リストボックス」と「チェックボタン」の機能を例に確認していきます。
「フォームコントロール」の概要と利用方法
「フォームコントロール」の概要
フォームコントロールは「ワークシート内の値の受け渡し」や「フォームに入力された値の利用」を容易に行える機能です。」VBAのプログラム(プロシージャ)を利用したい場合は「マクロの登録」を利用します。
「フォームコントロール」の「リストボックス」
例えば次のような表がワークシートにあったとします。この表の値をフォームコントロールのリストで取得してワークシートの任意のセルに返すといった操作を行ってみたいと思います。

コントロールの挿入から「フォームコントロール」の「リストボックス」を選択します。

ワークシート上で十字キーが表示されます。「+」ドラッグしてリストを作成します。

リスト内で右クリックをするとメニューが表示されます。フォームコントロールの特徴は設定時に「コントロールの書式設定」を扱うことです。

コントロールの書式設定を使ってリストボックスの設定を行います。コントロールの書式設定を選択するとダイアログボックスが表示されるのでメニュー内の「コントロール」を選択します。表示された入力ボックスに値を入力して「OK」をクリックすると設定が完了します。
「入力範囲」にワークシート内の商品項目部分(セルB4からB12)を選択します。
「リンクするセル」は選択された項目を表示するセルです。セルB14としています。
入力ができたら「OK」をクリックします。

リストボックスの中身が表示されます。

商品を選択すると「リンクするセル」で設定したセルB14にリストの番号が表示されます。

この記事の試し読みはここまでとなります。
「フォームコントロール」の「マクロの登録」
…
…
実行結果
…
「フォームコントロール」の「チェックボックス」
…
…
…
実行結果
…
「ActiveX コントロール」の概要と利用方法
「ActiveX コントロール」の概要
…
「ActiveX コントロール」の「リストボックス」
…
「ActiveX コントロール」でのプロシージャの利用
…
…
…
実行結果
…
「ActiveX コントロール」の「チェックボックス」
…
…
…
「ActiveX コントロール」のチェックボックスでプロシージャを利用
…
…
実行結果
…
今回は以上となります。

ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

