VBAエキスパート対策
マクロの実行

Excel VBAエキスパート対策です
公開日:2018-03-01 最終更新日:2019-08-25

マクロの実行


・Visual Basic Editorから実行する
・[マクロ]ダイアログボックス
・シート上にボタンを配置する
・メニュー/ツールバーに登録する
・クイックアクセスツールバーに登録する


【ここでのポイント】

ここは、試験対策としてはあまり重要視する必要はないでしょう。
一通りの実行方法を見ておけば答えられる程度の問題しか作りようがないと思います。
逆に言うと、各ダイアログなどは、しっかりと見ておく必要があるとも言えます。

ちゃんと見ていないダイアログが出題されると、ダイアログでオプションとして指定できる事が答えられないからです。
とはいえ、見ておくべき必須のダイアログも少ないです。
「マクロ」「マクロの登録」
この2つのダイアログだけしっかりみておけば大丈夫でしょう。

Visual Basic Editorから実行する

VBEからマクロを実行するには、
実行したいSubプロシージャーの中に入力カーソルを置きます。
Subプロシージャーの中とは、Sub~End Subの行の中ということです。

「実行」メニュー → Sub/ユーザーフォームの実行 F5
MOS VBA サンプル

ツールバーの標準→Sub/ユーザーフォームの実行(F5)
MOS VBA サンプル

標準のツールバーを表示するには、

MOS VBA サンプル

上記いずれの方法も、ショートカットキーが割り当てられています。

ショートカットキー F5


実行可能なSubプロシージャーの中に入力カーソルがない場合
Sub~End Subの行の外に入力カーソルがあったり、
実行できないSubプロシージャーの中にカーソルがある場合は、
「マクロ」ダイアログが表示されます。

MOS VBA サンプル

このダイアログが表示された場合でも、
マクロを選択して、「実行」で当該マクロを実行できます。

Sub~End Subの行の外に入力カーソルがあるとは、
End Subの後ろで次のSubの前にカーソルがあるような場合です。

実行できないSubプロシージャーとは、
引数の指定が必要なSubプロシージャー、例えば、Sub test2(引数)

マクロの実行を終了させる方法
起動する方法があるなら停止する方法もあります。

MOS VBA 画像

マクロ実行中に、この「リセット」ボタンを押すことでマクロを終了できます。

ただし、マクロは高速で処理されるので、このボタンを押すタイミングはなかなかありません。
デバッグモード中(マクロが一時停止中やステップ実行中)に、マクロを終了させたい時に使います。

[マクロ]ダイアログボックス

ワークシートからマクロを実行するためのアイコンは2箇所にあります。

「表示」タブ → 「マクロ」 → 「マクロの実行」
MOS VBA サンプル

「開発」タブ → 「マクロ」
MOS VBA サンプル

上記いずれも、ショートカットキーは、Alt+F8です。

「マクロ」ダイアログ
MOS VBA サンプル

この画面についての試験問題は出題される可能性は十分にありそうです。
このダイアログは、見た目は少し違う印象を受けますが、
VBEで、実行できないプロシージャーを指定した時のダイアログと同じものになります。

・マクロ名
 選択しているマクロの名称が表示されます。
 存在しないマクロ名を入れると、「作成」ボタンが使用可能になります。

・マクロの一覧
 作業中のブックのマクロは、マクロ名だけの表示
 作業中以外のブックのマクロは、ブック名!が先頭に付きます。
 同一ブック内で別モジュールに同じプロシージャー名が存在する場合は、
 モジュール名.プロシージャー名と表示されます。

・マクロの保存先
 複数ブックを開いている場合、どのブックのマクロを一覧に表示するかを選択します。

・実行
 選択したマクロを実行します。

・ステップイン
 選択したマクロをステップイン実行します。

・作成
 マクロ名に存在しない名称を入れたときに、その名称のプロシージャーを作成します。

・編集
 選択したマクロのプロシージャーを表示します。

・削除
 選択したマクロを削除します。
 MOS VBA サンプル

・オプション
 選択したマクロにショートカットキーを割り当てたり、説明を入れられます。

 MOS VBA サンプル

 Excel標準のショートカットキーと同じキーを指定すると、置き換わります。

 同じキーを複数のプロシージャーに割り当ててもエラーになりません。
 リストのより上のマクロが起動されるようですが、仕様ははっきりとはしません。
 そもそも間違いですので、出題もされないでしょう。

シート上にボタンを配置する

ワークシートにボタンを配置して、マクロを登録できます。
マクロを登録したボタンをクリックすることで、マクロを起動できます。

「開発」タブの「挿入」には、2種類のボタンがあります。
マクロの登録に使うのは、フォームコントロールのボタンです。

ボタン(フォームコントロール)
MOS VBA サンプル

下の方に、コマンド ボタン(ActiveXコントロール)というボタンもありますが、
こちらのボタンは、イベントを扱う事になるので、少なくともベーシックの出題範囲外になります。

ボタンの配置方法
「開発」タブ → 「挿入」 → ボタン(フォームコントロール)

これをクリックすると、
・カーソルが黒の細い十字に変わります
・ワークシート上でドラッグして大きさを決めます
・マウスクリックを放すと、以下の「マクロの登録」ダイアログが表示されます。
・マクロを選択して「OK」

 MOS VBA サンプル

ボタンの右クリックで、
ボタンのテキストを変更したり、
登録するマクロを変更したり出来ます。

 MOS VBA サンプル

このボタン以外に、オートシェイプにもマクロは登録できます。
オートシェイプの右クリックから登録することが出来ます。

公式テキストでは、「ボタンにマクロを登録するメリットとデメリット」として、
メリット3つ、デメリット3つが書かれています。

そもそも、この世の全ての事にメリット・デメリットはあるものです。
ことさら、ボタンについてのみ取り上げている理由が判然としませんでした。
メリット・デメリットの判定は、どの立場で見るかによって変わってきます。
つまり、メリット・デメリットは主観に依存しているという事です。

試験に出るとは思えませんが、万全を期したい方は読んでおいて下さい。
ボタン使用には、そういう特徴があるのだというくらいで読んでおけばよいでしょう。
むしろ、他の起動方法との違いを把握しておく方が重要な気がします。

メニュー/ツールバーに登録する

これは、Excel2003までの機能です。
従って、試験問題として出題されることはないはずです。
そして、実務でも使う事が無いはずです。

Excel2003はすでにMicroSoftがサポートを打ち切っています。

クイックアクセスツールバーに登録する

登録する手順が大きく2通りに分かれます。

クイック アクセス ツールバーのユーザー設定
MOS VBA サンプル

「ファイル」タブ → 「オプション」 → 「クイック アクセス ツールバー」
これは、2010以降の手順です。
2007は、Officeボタンからになります。

Excelのオプション

MOS VBA サンプル

コマンドの選択で、「マクロ」を選択します。

MOS VBA サンプル

マクロを選択して、「追加(A)」で追加されます。

「区切り」を追加すると、その位置に縦棒の区切りが追加されます。


アイコンの変更
マクロを追加後に、
「変更」ボタンでアイコンを変更できます。

MOS VBA サンプル

適用するブックを限定する
オプション画面の右上

MOS VBA サンプル

ここで、Excel全体に適用するか、作業中のブックだけに適用するかを選択できます。

登録後のアイコンをクリックした時、
マクロが入っているブックが開かれていない場合は、Excelはそのブックを開こうとしますが、
セキュリティレベルによって、警告ダイアログが表示されることになります。

リボンへのマクロ登録
リボンに「新しいタブ」を追加することで、そのタブにマクロを登録することもできます。
これは試験には出ないと思いますが、リボンにも追加できるという事は覚えておきましょう。

「リボンのユーザー設定」で「新しいタブ」を作ることで、そこにマクロを追加できます。

登録方法は、クイックアクセスツールバーとほぼ同様になります。

【業務改善の実務】

実務としては、VBA作成中のテスト実行は、ツールバーの「実行(F5)」を使います。
そして、ある程度完成したらシートにボタンを配置してマクロを登録します。

ボタン以外のマクロ登録は、かなり特殊です。
少なくとも、クイックアクセスツールバーにマクロ登録することは実務ではかなり稀な事です。
スタンダードで学ぶ、イベントや右クリックメニューを使用する事の方が多いでしょう。
つまり、
ボタンへのマクロ登録以外は、試験対策および一応の知識として覚えておく程度で良いという事です。

VBA開発中は、思わぬトラブルも多いものです。
マクロが暴走してしまう事も多々あります。

このような時にマクロを停止させたい時は、
ESC」キーまたは「PPAUSE BREAK」キーで一時停止できます。
ただし、高速で実行されているマクロは、これらのキーで停止出来ない事も多々あります。
キーを連打することで停止する場合もありますが、停止出来ない事もあります。

マクロを停止出来ない時は、Excelを強制終了させなければならなくなります。
VBA開発中の、このような事態に対処するには、
・マクロ実行前に必ず保存しておくこと
・適宜ブレークポイントを設定しておく
このような対応が必要です。
時間をかけて作成したVBAが消えてしまったら・・・こんな悲しいことはありませんよね。

【本サイト内の関連ページ】

第7回.マクロを実行するには(F5)
・VBEの画面で実行 ・ワークシートの開発タブで実行 ・ボタンや図形に登録して実行 ・マクロを実行すると

第24回.マクロの呪文を追加してボタンに登録
・マクロの呪文「Application.ScreenUpdating」を追加 ・ボタンの追加とマクロの登録 ・ExcelマクロVBA入門等の対応ページ

VBAエキスパート公式テキスト

2019/5/30発売リニューアル版


2019/7/26発売リニューアル版

こちらは必須として購入した方が良いでしょう。
ちょっと高いなーとは思いますが、
書籍を購入することで、学習用データが提供されています。
・サンプルブック
・VBAエキスパート模擬問題
これらが使えるようになります。
このシリーズでは、テキストを読みながら学習していることを前提とします。



同じテーマ「VBAエキスパート対策」の記事

ブックの操作
シートの操作
デバッグデの基礎
マクロの実行
VBAベーシック試験対策まとめ
プロシージャ
イベント
ステートメント(スタンダード)
関数
エラーへの対処
APIとOLEオートメーション


新着記事NEW ・・・新着記事一覧を見る

ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ