マクロが増えると全体の流れが見えづらくなる
Excel VBAで作業を進めていくと、次第に「マクロが増えて全体が見えにくい」「どの処理がどこにあるのか分かりにくい」と感じることがあります。
こうしたときに有効なのが、「モジュールの整理整頓」です。
マクロを機能ごとに整理することで、メンテナンスしやすくなり、全体の構造も理解しやすくなります。
実装するメリット
- マクロの役割が明確になり、迷わず修正できる
- 似た処理をまとめて再利用しやすくなる
- 他の人にも伝わりやすい構成にできる
- バグや重複コードの発見がしやすくなる
まずはモジュールを分ける意味を知る
モジュールは、コードを分類して収納する「箱」のようなものです。
私がお話しするときは主に標準モジュールというところに記載しましょう、というお話をしますが、シートや、ブックで動作させる場合には、別のモジュールを使うことができます。
もしくは、シートの操作をもとに動作をさせるなどの場合には、シートモジュールに書く、などルールがあります。
モジュールの種類
- 標準モジュール:SubやFunctionを記述する一般的な場所
- シートモジュール:各シートにひもづくイベント(例:Change)用
- ThisWorkbookモジュール:ブック全体のイベント(例:Open)用
具体例:標準モジュールにマクロをまとめる
' --- ファイル操作用 ---
Sub OpenReport()
Workbooks.Open "C:\Reports\sales.xlsx"
End Sub
' --- データ整形用 ---
Sub FormatSheet()
Range("A1").Font.Bold = True
Range("A1:A10").Interior.Color = RGB(220, 230, 241)
End Sub
解説
- 1つのモジュール内でも、コメントでセクションごとに分けるだけでかなり見やすくなります。
- よく似た処理(ファイル操作・整形・集計など)ごとに別のモジュールへ移動するのも有効です。
新しいモジュールの作成と整理手順
次のように整理してみましょう
- 開発タブ > Visual Basic を開く
- プロジェクトエクスプローラーで右クリック →「挿入」→「標準モジュール」
- モジュール名を右クリック →「名前の変更」で「ファイル操作」や「印刷処理」など、内容がわかる名前をつける
- マクロを目的別にコピーして貼り直す
整理後にやるべきこと
マクロを整理していくと下記のようなことを確認することでよりスマートになります。
- モジュール内のマクロが重複していないかを確認
- 使われていないマクロが残っていれば削除する
- 必要に応じて、マクロ一覧を作って管理しても良い
まとめ
モジュールを整理することで、VBAの全体像がぐっと全体の流れやすくなります。
特に同じようなコードがある場合には、一度整理してみるのも一つの手です。
私自身はできる限り1つのモジュールで行おうとしていますが、あまりにも長かったり、複数シートに渡る場合にはシートごとにモジュールを分けたりしています。
- 機能ごとにモジュールを分けるだけでも、修正や追加が楽になります。
- 名前付けやコメントを丁寧にすることで、他の人にも伝わりやすくなります。
マクロの数が増えてきたと感じたら、まずは1つモジュールを新しく作り、分類してみるところから始めてみましょう。
少しの手間で、コードの全体の流れとメンテナンスのしやすさが一気に向上します。
コメント