Excelマクロは、最初から完璧に
作ろうとしなくても問題ありません。
ただし、一つのモジュールに
すべての処理を書いてしまうと、
後から条件を追加するときに
修正箇所が分かりにくくなります。
私は専門商社の海外営業として、
見積書の作成やデータ転記、
入力内容のチェックなどを
マクロで少しずつ自動化してきました。
実務では、作った時点よりも、
運用開始後に出てくる例外への
対応で差が出ると感じています。
Excelマクロでモジュールを分ける理由1|修正箇所を探しやすい
モジュールを分ける一番のメリットは、
修正箇所を見つけやすいことです。
例えば、一連の処理を
次のような役割で分けておきます。
- データを読み込む処理
- 入力内容を確認する処理
- ファイルを保存する処理
- 警告を表示する処理
- 終了時に後片付けする処理
入力チェックの条件を変える場合は、
確認用のモジュールだけを見ればよく、
ほかの処理を誤って変更する
可能性も低くなります。
マクロを作った直後は、
長いコードでも内容を覚えています。
しかし、数か月後に修正するときは、
自分で作ったコードでも
意外と簡単には思い出せません。
Excelマクロでモジュールを分ける理由2|イレギュラー条件を追加しやすい
実際の仕事では、運用を始めてから
想定外の条件が見つかります。
「この場合だけ警告を出したい」
「特定の条件では処理を止めたい」
といった追加は珍しくありません。
私もメール送信前の確認処理で、
件名や本文だけではなく、
添付されたExcelファイルも
確認したくなったことがあります。
このとき、確認処理が独立していれば、
必要な機能だけを追加できます。
さらに、同じ内容の警告を
二重に表示しないようにするなど、
細かな調整もしやすくなります。
実務のマクロでは、処理の速さより、
異常があったときに正しく止まり、
修正しやすいことのほうが重要です。
Excelマクロでモジュールを分ける理由3|テストの範囲を絞りやすい
モジュールを分けておくと、
変更した部分を中心に
テストできるようになります。
例えば、保存処理を修正した場合、
入力チェックまで大きく触らずに
動作を確認できます。
私はマクロを変更するとき、
元ファイルのコピーを作り、
通常のケースと例外のケースを
分けて試すようにしています。
一つの修正が別の処理へ
思わぬ影響を与えることもあるため、
確認範囲を絞れるだけでも
作業の負担はかなり減ります。
Excelマクロのモジュール分割は「変更理由」で考える
細かく分ければよいわけではありません。
モジュールを増やしすぎると、
今度は処理の流れを追いにくくなります。
私が意識しているのは、
「何をするか」だけではなく、
「どんな理由で変更されるか」です。
例えば、入力ルールの変更と
保存先の変更は理由が異なるため、
別のモジュールにしておくと
後から扱いやすくなります。
最初は次の3つ程度でも十分です。
- メインの処理
- チェックする処理
- 保存や出力を行う処理
必要になった段階で、
警告表示や後片付けの処理を
独立させれば無理がありません。
まとめ|Excelマクロは後から直せる形にしておく
仕事で使うマクロは、
一度作って終わりではありません。
使い続けるうちに出てくる
小さな例外へ無理なく対応できると、
マクロは長く使える道具になります。
まずは処理を大きく分けるところから、
少しずつ試してみてください。












