Excel 2007・2010・2013で、マクロを手軽に実行するためのフォームボタンを作成する方法をご紹介しました。
もう一つのボタン、Active Xコントロールのコマンドボタンを作成する手順をご紹介しておきましょう。
コマンドボタン作成の概要とフォームボタンとの違い
Active Xコントロールのコマンドボタンのほうが、既にご紹介したフォームボタンよりも、自由度が高いのですが、(その分)操作手順は少々長くなります。[開発]タブ
-[コントロール]グループ
-[挿入]
-[ActiveXコントロール]
-[コマンドボタン]をクリック
↓
ワークシート上でドラッグしてボタンを作成
↓
作成したボタン上で右クリックして表示された
ショートカットメニューから[コードの表示]をクリック
↓
表示されたVBEのイベントプロシージャにコードを追加
↓
Excelの
[開発]タブ
-[コントロール]グループ
-[デザインモード]ボタンをクリックしてデザインモードを解除
フォームコントロールのボタンとActive Xコントロールのボタンの違いはいろいろとありますが、ActiveXコントロールの場合はボタンを作るときのデザインモードと、作られたボタンを利用するモードが明確に分かれている点は、大きな違いの一つです。
デザインモードと、作られたボタンを利用するモードを切り替えているのが、上記の手順の最後の[開発]タブ-[コントロール]グループ-[デザインモード]ボタンをクリックする操作です。
コマンドボタン作成の手順
[開発]タブ-[コントロール]グループ-[挿入]-[ActiveXコントロール]-[コマンドボタン]は下図のボタンです。
ワークシート上でドラッグして作成したコマンドボタンで右クリックすると、下図のようなショートカットメニューが表示され、
[コードの表示]を実行すると、コマンドボタンをクリックしたときに実行されるイベントプロシージャを編集する状態で、VBE(Visual Basic Editor)が表示されます。
表示されたVBEには
Private Sub CommandButton1_Click()
End Sub
といったイベントプロージャが表示されているはずです。
このイベントプロシージャに、コマンドボタンをクリックしたときに実行させたいコードを記述します。
マクロを、このイベントプロージャに直接作成しても悪くはありませんが、メンテナンスのことを考えると、Subプロシージャを標準モジュールに作成しておいて、イベントプロシージャ内にはそのSubプロシージャを呼ぶような作りにしておくほうがおすすめです。
例えば標準モジュールに作成した「シートをまとめる」というSubプロシージャ・マクロを実行させたいのなら、
Private Sub CommandButton1_Click()
Call シートをまとめる
End Sub
といった記述にします。
コマンドボタンの名前を変更する
ワークシート上にコマンドボタンを一つしか作らないのであれば、コマンドボタンの名前はデフォルトのままでも、まあ、いいでしょうが、もしも同じワークシートにたくさんのコマンドボタンを作るのなら、上記のようなイベントプロシージャを作成する前に、コマンドボタンの名前を変更しておくほうがいいでしょう。
コマンドボタンの名前の変更方法は以下の手順です。デザインモードの状態で
名前を変更したいボタン上で右クリックして表示された
ショートカットメニューから[プロパティ]をクリック
↓
[プロパティ]ウィンドウ-[(オブジェクト名)]欄で名前を変更する
↓
[プロパティ]ウィンドウを閉じる
デザインモードになっていれば、コマンドボタン上で右クリックしたときショートカットメニューが表示されますが、右クリックしてもショートカットメニューが表示されないという場合、デザインモードになっていないわけですから、[開発]タブ-[コントロール]グループ-[デザインモード]ボタンをクリックしてデザインモードにしてから操作を開始してください。
[プロパティ]ウィンドウ-[(オブジェクト名)]欄とは下図の部分です。
デザインモードを終了しても[プロパティ]ウィンドウは自動的に非表示になるわけではありませんので、右上の[閉じる]ボタンをクリックして閉じましょう。
Home » エクセルマクロ・Excel VBAの使い方 » Excel 2013・2010・2007でマクロを実行するコマンドボタンを作成する-ActiveXコントロール