
「マクロを書いてみよう!」そう思ってVBE(Visual Basic Editor)を開いたけど、「あれ?マクロを書く場所がいくつもあって、どこに書いたらいいんだろう?」と戸惑っている方はいませんか?
マクロを記述できる場所はいくつかありますが、結論から言うと、ほとんどの場合「標準モジュール」に書くのが良いです。
この記事では、なぜ標準モジュールに書くのが良いのか、その理由を初心者の方にも分かりやすく解説していきます。
マクロは3つの場所に書ける!

Excelでマクロを記述できる場所は、主に以下の3つです。
- 標準モジュール
- シートモジュール
- ThisWorkbook
VBEの画面を見ると、下の画像のように「Microsoft Excel Objects」という項目の中に「Sheet1」「ThisWorkbook」といった名前があり、その下に「標準モジュール」という項目があるのが分かります。

では、それぞれの場所がどのような用途で使われるのか、簡単に見ていきましょう。
標準モジュールがないよという方向け
- 「挿入」タブをクリック
- 「標準モジュール(M)」をクリック

なぜ標準モジュールに書くのがいいの?
先ほどお伝えした通り、マクロを書く場所は標準モジュールにしましょう。

その理由は、主に3つあります。
理由① どのシートからでも使えるから
標準モジュールに書いたマクロは、Excelブックの中にあるどのシートからでも実行できます。
例えば、「商品Aシート」と「商品Bシート」があったとして、どちらのシートを開いているときでも同じマクロを動かしたい!という場合、標準モジュールに書いておけばOKです。
特定のシートに縛られず、汎用的に使えるのが大きなメリットです。
理由② 整理整頓がしやすいから
マクロが増えてくると、VBEの中がごちゃごちゃになって、どこに何が書いてあるか分からなくなってしまいます。
標準モジュールに書く場合、以下のように整理することができます。
このように分類しておくと、後から見返したときにどこに何が書いてあるか一目瞭然です。

理由③ マクロの管理が楽になるから
標準モジュールに書いておけば、「このマクロは、あのシートのあのマクロを動かしてからじゃないと動かせない…」といった依存関係が生まれにくくなります。
また、シートモジュールやThisWorkbookに書いたマクロは、そのシートやブックが削除されると一緒に消えてしまう可能性があります。
しかし、標準モジュールは個別に管理されるため、誤って消してしまうリスクが少ないです。
標準モジュール以外の使い分けも知っておこう!

じゃあ、シートモジュールやThisWorkbookは使わないの?

そんなことはないよ!
特定の目的がある場合は、これらの場所に書くのが最適です。
記述場所 | 特徴と用途 | メリット | デメリット |
標準モジュール | 汎用的なマクロを記述する場所。ほとんどの場合に推奨される。 | どのシートからでも使える。整理がしやすい。 | 特定のイベントには対応できない。 |
シートモジュール | 特定のシートで発生するイベントに対応したい場合。 | 「セルをクリックしたとき」など、特定のシートに紐づく動作を自動化できる。 | そのシートを削除するとマクロも消えてしまう。他のシートからは呼び出せない。 |
ThisWorkbook | ブック全体で発生するイベントに対応したい場合。 | 「ブックを開いたとき」など、ブック全体の動作を自動化できる。 | ブックを削除するとマクロも消えてしまう。 |
このように、マクロを記述する場所にはそれぞれ役割があります。
「特定のシートで何かをしたら、マクロを動かしたい」という場合はシートモジュール、「Excelファイルを開いたときに、自動でマクロを動かしたい」という場合はThisWorkbookを使うと良いでしょう。
ですが、まずは「マクロは標準モジュールに書く!」という基本を覚えておくことが大切です。
まとめ

今回は、マクロを記述する場所について解説しました。
マクロの書き方を学び始めたばかりの方は、「標準モジュール」という場所をしっかり覚えて、今後の学習に活かしてくださいね。
マクロを書いてみよう!
まずは簡単なマクロから、標準モジュールに書いて実行してみましょう。
- Excelを開く
Alt
+F11
キーを押してVBEを起動する- VBEの上部メニューから
挿入
→標準モジュール
をクリック - 右側に出てきた白いスペースに、以下のコードを貼り付ける
VBA
Sub HelloWorld()
MsgBox “こんにちは、マクロの世界へようこそ!”
End Sub
- VBEの上部メニューから
実行
→Sub/ユーザーフォームの実行
をクリックするか、F5
キーを押す

すると、以下のように「こんにちは、マクロの世界へようこそ!」というメッセージが表示されるはずです。

標準モジュールにマクロを書いて実行できましたね!
VBAお勧め本9選

これからVBAの勉強をしていきたい方やVBAを業務で使ってレベルを上げていきたい方などレベル別にお勧めの本を9つご紹介しています!
気になる方は下記の記事をご覧ください!
コメント