皆様こんにちは、ノグチです。
前回記事では、エクセルのフォームコントロールのチェックボックスをご紹介しました。
入力フォームの見た目としてだけでなく、他のセルにチェックボックスのON/OFFを出力できたり、チェックボックスをクリックした時にマクロを実行させたりできるなど、便利な使い道がありました。
今回は、前回記事で名前だけご紹介をした、ActiveXコントロールのチェックボックスをご紹介します。
ActiveXコントロールのチェックボックス
ワークシートに挿入する
ActiveXのチェックボックスをワークシートに挿入するには、「開発」>「挿入」> 「ActiveXコントロール」からチェックボックスを選択します。
「CheckBox1」というテキストとチェックボックスが、ワークシート上に表示されますね。
前回記事と同じように、本記事でもワークシートに表示されている、線で囲まれたテキストとチェックボックス全体を「コントロール」と呼ぶことにしましょう。
ActiveXのコントロールはデザインモードでカスタムする
チェックボックスに限らず、ActiveXコントロールに変更を加える場合は、デザインモードにしておく必要があります。
デザインモードは、メニューの「開発」タブにある「デザインモード」をクリックすると、メニュー上のデザインモードの背景色が薄いグレーになり、ActiveXコントロールに変更を加えることができるようになります。
このデザインモードにしておかないと、ActiveXコントロールの大きさやテキストの変更といったコントロールへの変更が出来ません。
ActiveXコントロールに変更を加えたい場合は、まずこのデザインモードをONにしておきましょう。
デザインモードを解除したい場合は、 「開発」タブの「デザインモード」をもう一度クリックすればOKです。
テキストを変更する
コントロールがワークシートに表示されたとき、「CheckBoxN」(Nは数字)というテキストが表示されていますね。
このテキストは、任意の名称に変更することができます。
デザインモードにしてから、コントロールにマウスカーソルを合わせて右クリック>「チェックボックス オブジェクト」>「編集」をクリックすると、テキストが編集できるようになります。
今回は、「チェックボックス123」というテキストに変更しておきましょう。
フォントやチェックボックスのサイズを変更する
プロパティシートでカスタマイズできる
コントロールのテキストを変更するには、プロパティシートから変更する方法もあります。
コントロールを右クリック>「プロパティ」をクリックすると、コントロールのプロパティシートが開きます。
色々な項目がありますね。
代表的な項目を挙げてみましょう。
プロパティ項目 | 設定内容 |
---|---|
Alighnment | コントロール内でチェックボックスを左右どちらに配置するかを設定します |
BackColor | コントロールの背景色を設定します |
Caption | コントロールのテキストを変更します |
Font | コントロールのテキストフォントを変更します |
ForeColor | コントロールのテキスト色を変更します |
LinkedCell | チェックボックスのチェック結果を出力するセルを指定します |
Height | コントロール全体の高さを設定します |
Width | コントロール全体の幅を設定します |
TextAlighn | コントロール内でテキストを左右・中央のいずれに配置するかを設定します |
フォームコントロールと比較すると、テキストフォントや配置といった項目を細やかにカスタマイズできるようになっていますね。
マクロ実行のトリガーになる
フォームコントロールのチェックボックスと同様、ActiveXコントロールのチェックボックスも、チェックボックスのON/OFF操作によってマクロを実行することができます。
コントロール上で右クリック>「コードの表示」をクリックするとVBEの画面が開き、チェックボックスを配置したワークシートのシートモジュール上に「CheckBox数字_Click」というイベントプロシージャが自動的に作成されます。
チェックボックスをクリックした時に実行させたい処理は、このプロシージャ内に書き込むことができますよ。
試しに、チェックボックスがクリックされたらメッセージを表示させてみましょう。
プロシージャ内にメッセージを表示させる処理を追加して…
Sub チェック1_Click() MsgBox "チェックボックスが操作されました!" End Sub
チェックボックスをクリックしてみると…
この通り、マクロが実行されてメッセージが表示されました。
ActiveXコントロールのチェックボックスができないこと
チェックボックスのサイズ変更
ActiveXコントロールも、フォームコントロールのチェックボックスと同様、コントロール全体のサイズは変えられてもチェックボックス自体の大きさを変えることはできません。
やはり、周りの背景色やフォントの大きさなどのレイアウトで、チェックボックスが埋もれてしまわないようにバランスをとる必要がありそうです。
フォームコントロールのチェックボックスとの違い
フォームコントロールとActiveXコントロールのチェックボックスの違いをざっくりまとめると、こんな感じです。
項目 | フォームコントロール | ActiveXコントロール |
---|---|---|
フォント | 変更不可 | 変更可 |
VBAコード | 標準モジュールに自動生成される | シートモジュールに自動生成される |
コントロール内のテキスト配置 | 変更不可 | 変更可 |
別セルとの連動 | 可 | 可 |
コントロールへの変更 | 可 | デザインモード状態のみ可 |
フォームコントロールとActiveXコントロールのチェックボックスは見た目はほぼ変わりませんが、フォントが変えられたり、テキストの配置が変えられたりと、Activexコントロールの方が細かいカスタマイズができますね。
しかし、デザインモードへ切り替えずにコントロールを変更できることや、書式設定でサイズや別セルとの連動が設定できるという、操作の気軽さではフォームコントロールに軍配が上がります。
プロパティシートでの設定は、細かい項目を設定できる反面、各項目名が日本語でないということで、人によっては設定のハードルが少し上がるでしょう。
入力フォームの見た目としてチェックボックスを使いたい、チェックボックスのON/OFFが分かれば十分、という事であればフォームコントロールを、見た目やチェックのON/OFFによって動作をカスタムしたい!ということであればActiveXコントロールのチェックボックスを使うというように、用途によって使い分けするとよいかもしれませんね。
最後に
今回は、ActiveXコントロールのチェックボックスをご紹介しました。
見た目は同じでも、蓋を開けてみると違いがありますね。
自分のやりたいことと、フォームコントロール・ActiveXコントロールそれぞれの特性を比べて、より使いやすい方を使えるようになるとよいですね。
それでは、最後までお読みいただきありがとうございました!