シートにボタンを作る。

ワークシート上の空いている所にマクロ起動用の「ボタン」を貼り付けておいて、そのボタンをクリックすることで、マクロを起動させます。



ワークシート上で使用できるボタンは2種類あります。
ここからの説明はリボンに「開発」タブが表示されている前提になっています。
「開発」タブ
(この画像をクリックすると、該当ページにジャンプできます。)
「開発」タブが表示されていない場合は、上記画像をクリックして表示されるページに説明があるので「開発」タブを表示させて下さい。



ワークシート上で使用できるボタンは2種類あります。
「ボタン」は2種類ある
どちらも「マクロを起動する」という役割としては同じですが、ワークシート上では「ふるまい」が異なります。
ワークシート上に貼り付ける操作は同じで、リボン上のメニューからどちらかを選択してから、ワークシート上の貼り付け先をドラッグすることで貼り付けられます。 以下にそれぞれの違いや貼り付け後の作業などを説明します。

フォームコントロールの「ボタン」
本来、ワークシートに貼り付けて利用するためのもので、ワークシートとの親和性が高いものです。
[長所]
  ・呼び出すマクロの登録とボタン表示名の登録だけで機能を果たせる
  ・マウスカーソルを載せるとポインタが「指」に替わる
[短所]
  ・細かい制御プロパティがない、クリックしかイベントがない
  ・シートを保護しないと簡単に移動や削除ができてしまう(シート保護前提で採用すべき)



「開発」タブの「挿入」メニューからフォームコントロールの「ボタン」を選択して、シート上の貼り付け先をドラッグさせると、
マクロの登録
このように「マクロの登録」が表示されるので、このボタンから起動させるマクロ(プロシージャ名)を選択して OKをクリックするだけで起動動作の登録は完了します。 後はボタン表示のテキストや書式等の設定を行なえば良いわけです。



従って、動作させるマクロ(呼び出すプロシージャ)を先に作成させておいてからの操作となります。
標準モジュールに作成する引数がないPublicなプロシージャは、起動ボタンがなくても「マクロ」から起動できるわけですが、 これを避ける場合はモジュールの先頭に「Option Private Module」を記述します。
但し、ボタンの登録以前に「Option Private Module」を記述してしまうと、「マクロの登録」に表示されなくなってしまうので、 「マクロの登録」等の作業が完了してから記述させて下さい。

ActiveXコントロールの「コマンドボタン」
※「ActiveXコントロール」は、古いバージョンのOfficeでは「コントロールツールボックス」と呼ばれていました。
ユーザーフォームの「ボタン」をワークシート上で扱えるようにしたものです。(だと思います)
[長所]
  ・細かい制御プロパティやクリック以外のイベントがある
  ・シートを保護しなくても「デザインモード」にしなければ移動・削除はできなくできる
[短所]
  ・シート側にイベントプロシージャが必要(起動マクロの配置だけの問題)
  ・マウスポインタのプロパティはあるが「指」にはならない(代替策はあるようですが...)
  ・Officeバージョンにより動作不具合を起こした「歴史」がある(「ウィンドウ枠固定」と相性が悪い模様)



ボタンの作成は、「開発」タブの「挿入」メニューからActiveXコントロールの「コマンドボタン」を選択して、シート上の貼り付け先をドラッグします。
クリックを含むイベントはシートモジュールに記述します。
(ボタンのオブジェクト名を変更する場合は、下記の作業前に行なって下さい)
VBEの「Sheet1」モジュール
VBE側の操作では、まず「Sheet1」のコードを開き、 左上のプルダウンで「ボタン」を選択、右上のプルダウンでイベントを選択します。 これでコードページに当該プロシージャの「枠」だけが作成されます。
対象「ボタン」のイベントプロシージャが何も作成されていない場合は左上のプルダウンの選択だけで「Click」イベントは作成されます。



ここで自動作成されたプロシージャの「枠」の部分は変更してはなりません。
後はこの中に必要な記述を行なうことになります。



一方、対象「ボタン」の表示状態等はプロパティで設定します。(実行後は「デザインモード」で操作します)
コマンドボタンのプロパティ
特に重要なプロパティは下記の通りです。

プロパティ 機能説明・注意事項
Caption ボタンの表示名称です。
Enabled ボタンの活性/不活性の制御です。主にマクロコード側で制御します。
Font ボタン表示名称のフォント種類・スタイル・文字サイズの設定です。
ForeColor ボタン表示名称の文字色の設定です。
Locked シート保護状態でクリックできるようにするには、Falseに変更する必要があります。 デフォルトはTrueです。
Visible ボタンの表示/非表示の制御です。主にマクロコード側で制御します。