マクロはどこに記載すればいいの?標準モジュールに書こう!【初心者向け】

でんちゃん
でんちゃん

「マクロを書いてみよう!」そう思ってVBE(Visual Basic Editor)を開いたけど、「あれ?マクロを書く場所がいくつもあって、どこに書いたらいいんだろう?」と戸惑っている方はいませんか?

マクロを記述できる場所はいくつかありますが、結論から言うと、ほとんどの場合「標準モジュール」に書くのが良いです。

この記事では、なぜ標準モジュールに書くのが良いのか、その理由を初心者の方にも分かりやすく解説していきます。


マクロは3つの場所に書ける!

でんちゃん
でんちゃん

Excelでマクロを記述できる場所は、主に以下の3つです。

  1. 標準モジュール
  2. シートモジュール
  3. ThisWorkbook

VBEの画面を見ると、下の画像のように「Microsoft Excel Objects」という項目の中に「Sheet1」「ThisWorkbook」といった名前があり、その下に「標準モジュール」という項目があるのが分かります。

では、それぞれの場所がどのような用途で使われるのか、簡単に見ていきましょう。

標準モジュールがないよという方向け

  1. 「挿入」タブをクリック
  2. 標準モジュール(M)」をクリック


なぜ標準モジュールに書くのがいいの?

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

でんちゃん
でんちゃん

その理由は、主に3つあります。

理由① どのシートからでも使えるから

標準モジュールに書いたマクロは、Excelブックの中にあるどのシートからでも実行できます。

例えば、「商品Aシート」と「商品Bシート」があったとして、どちらのシートを開いているときでも同じマクロを動かしたい!という場合、標準モジュールに書いておけばOKです。

特定のシートに縛られず、汎用的に使えるのが大きなメリットです。

理由② 整理整頓がしやすいから

マクロが増えてくると、VBEの中がごちゃごちゃになって、どこに何が書いてあるか分からなくなってしまいます。

標準モジュールに書く場合、以下のように整理することができます。

  • 1つのモジュールに複数のマクロをまとめる
  • 機能ごとにモジュールを分ける
    例:集計用のマクロは「集計モジュール」、印刷用のマクロは「印刷モジュール」

このように分類しておくと、後から見返したときにどこに何が書いてあるか一目瞭然です。

理由③ マクロの管理が楽になるから

標準モジュールに書いておけば、「このマクロは、あのシートのあのマクロを動かしてからじゃないと動かせない…」といった依存関係が生まれにくくなります。

また、シートモジュールThisWorkbookに書いたマクロは、そのシートやブックが削除されると一緒に消えてしまう可能性があります。

しかし、標準モジュールは個別に管理されるため、誤って消してしまうリスクが少ないです。


標準モジュール以外の使い分けも知っておこう!

すもリーマン
すもリーマン

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

でんちゃん
でんちゃん

そんなことはないよ!
特定の目的がある場合は、これらの場所に書くのが最適です。

記述場所特徴と用途メリットデメリット
標準モジュール汎用的なマクロを記述する場所。ほとんどの場合に推奨される。どのシートからでも使える。整理がしやすい。特定のイベントには対応できない。
シートモジュール特定のシートで発生するイベントに対応したい場合。「セルをクリックしたとき」など、特定のシートに紐づく動作を自動化できる。そのシートを削除するとマクロも消えてしまう。他のシートからは呼び出せない。
ThisWorkbookブック全体で発生するイベントに対応したい場合。「ブックを開いたとき」など、ブック全体の動作を自動化できる。ブックを削除するとマクロも消えてしまう。

このように、マクロを記述する場所にはそれぞれ役割があります。

「特定のシートで何かをしたら、マクロを動かしたい」という場合はシートモジュール、「Excelファイルを開いたときに、自動でマクロを動かしたい」という場合はThisWorkbookを使うと良いでしょう。

ですが、まずは「マクロは標準モジュールに書く!」という基本を覚えておくことが大切です。


まとめ

でんちゃん
でんちゃん

今回は、マクロを記述する場所について解説しました。

  • マクロを書く場所はいくつかあるが、迷ったら「標準モジュール」に書くのが基本
  • 標準モジュールに書くと、どのシートからでも使える、整理しやすい、管理が楽というメリットがある
  • 特定のイベントに対応したい場合は、シートモジュールThisWorkbookも活用できる

マクロの書き方を学び始めたばかりの方は、「標準モジュール」という場所をしっかり覚えて、今後の学習に活かしてくださいね。

マクロを書いてみよう!

まずは簡単なマクロから、標準モジュールに書いて実行してみましょう。

  1. Excelを開く
  2. Alt + F11 キーを押してVBEを起動する
  3. VBEの上部メニューから 挿入標準モジュール をクリック
  4. 右側に出てきた白いスペースに、以下のコードを貼り付ける

VBA

Sub HelloWorld()
MsgBox “こんにちは、マクロの世界へようこそ!”
End Sub

  1. VBEの上部メニューから 実行Sub/ユーザーフォームの実行 をクリックするか、F5 キーを押す

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

標準モジュールにマクロを書いて実行できましたね!

VBAお勧め本9選

でんちゃん
でんちゃん

これからVBAの勉強をしていきたい方やVBAを業務で使ってレベルを上げていきたい方などレベル別にお勧めの本を9つご紹介しています!

気になる方は下記の記事をご覧ください!

この記事を書いた人
でんちゃん

一児の父。人事として6年、採用・教育・労務・人事制度などを経験してきました。これまで200名ほどの方と面接を実施してきたので就職・転職に関するノウハウがあります。またExcelを用いたデータ分析が得意です。
娘が生まれ日々のすさまじい成長を目の当たりにしています。
人事やExcel、子育てに関してのお役立ち情報を伝えるブログを作っていきます!

でんちゃんをフォローする
Excel
シェアする
でんちゃんをフォローする

コメント

タイトルとURLをコピーしました