ActiveXコントロールのボタン操作
今回の目標
説明
事前準備
開発タブを追加してください。
表示方法がわからない方は下記リンクを参照してください。
開発タブの追加
次に、標準モジュールに下のプログラムを記載してください。
Sub Sample_MakeButton1()
MsgBox "ボタンがクリックされました!"
End Sub
これで準備は完了です。
フォームコントロールとActiveXコントロール
何が違うのか?
フォームコントロールとActiveXコントロール。
シンプルに説明すると次のようになります。
- フォームコントロール
ボタン内に表示するテキストのフォントサイズ等の操作ができないが、覚える量が少なく扱いやすい。 - ActiveXコントロール
初心者だと理解するのに時間がかかるが、ボタン内の背景色の変更等、高度な操作ができる。
装飾が必要なら、ActiveXコントロールが良いでしょう。
ActiveXコントロールによるボタン操作
ボタンを作成する
-
開発タブをクリックします。
-
挿入をクリックします。
-
下図の□をクリックします。
-
すると、下の図のようにカーソルが「+」になります。
シート上のセルをドラッグします。
-
ボタンが作成されます。フォームコントロールのボタンとは異なり、マクロとボタンが紐付けられていないので、ボタンをクリックしても反応はありません。
ボタンとマクロを紐づける
-
開発タブの「デザインモード」をクリックします。ただし、既に灰色の状態ならクリックしないでください。
-
対象のボタンをダブルクリックします。
-
VBEがアクティブになります。
自動的に「CommandButton1_Click」プロシージャが作成され、ここに書いたプログラムが呼び出されます。
標準モジュール内のプロシージャを呼び出す方法
標準モジュールを直接呼び出すことはできません。自動的に作成された「CommandButton1_Click」モジュールから標準モジュールのプロシージャを呼び出します。
Call 呼び出すプロシージャ名
本章では「Call」の詳しい説明はしません。
Private Sub CommandButton1_Click()
' 他のプロシージャを呼び出す
Call Sample_MakeButton1
End Sub
表示テキストを変更する
-
開発タブの「デザインモード」をクリックします。ただし、既に灰色の状態ならクリックしないでください。
-
対象のボタンを右クリックします。
-
「プロパティ(I)」を選択します。
-
「Caption」の右の四角をダブルクリックします。
-
表示したい文字を入力するとボタンの表示文字も変わります。
サイズを変更する
-
開発タブの「デザインモード」をクリックします。ただし、既に灰色の状態ならクリックしないでください。
-
対象のボタンをクリックします。
-
ボタンのふちにある「○」にマウスを移動するとカーソルが変わります。
その状態でドラッグするとサイズが変更されます。
ボタンを移動させる
-
開発タブの「デザインモード」をクリックします。ただし、既に灰色の状態ならクリックしないでください。
-
対象のボタンをドラッグすると、移動します。
ボタンの背景色を変更する
-
開発タブの「デザインモード」をクリックします。ただし、既に灰色の状態ならクリックしないでください。
-
対象のボタンを右クリックします。
-
「プロパティ(I)」を選択します。
-
「BackColor」の右にある枠をクリックします。
-
プルダウンのボタンが表示されますので、クリックします。
-
色を選択できます。オーソドックスな色がそろっているシステムタブとカラーバリエーションあふれるパレットタブがあるので、切り分けて色を選択してください。
数式バーをクリックした時
デザインモードでボタンをアクティブにした状態で数式バーをクリックすると関数の対象のセルを選択状態になってしまいます。この状態で確定しようとすると次のエラーが発生します。
この状態になってしまったら「Esc」キーを押してください。
一般的なキーボードでは一番左上にあると思います。
なお、このエラーはEscキーを押すまでExcelを終了することができません。
関連リンク
次ページ:なぜ「マクロが無効にされました。」と警告される?
前ページ:フォームコントロールのボタン操作