まずは「どの業務で使われているマクロか」を確認する
VBAマクロの改修では、最初にコードではなく業務上の役割を確認します。
たとえば、同じ「集計ボタン」でも、実際には次のような処理が含まれていることがあります。
- 複数ファイルの読み込み
- データの加工
- 集計表への転記
- 帳票作成
- CSV出力
- メール送信用ファイルの作成
- 他システムへ取り込むデータの生成
この流れを確認せずに一部だけ修正すると、見た目のエラーは直っても、後続の帳票やCSV出力で不具合が出ることがあります。
改修前には、次の項目を整理します。
- このマクロは何の業務で使うのか
- 誰が、いつ、どの頻度で使うのか
- 入力ファイルは何か
- 出力される帳票やデータは何か
- 失敗した場合に業務へどの程度影響するか
改修前に必ずバックアップを取る
既存VBAを修正する前に、必ずバックアップを取ります。
最低限、以下を分けて保存してください。
- 修正前のExcelファイル
- テスト用コピー
- 本番利用ファイル
- 外部CSVや参照ファイル
- 出力帳票のサンプル
特に、業務で毎日使っているExcelファイルを直接修正するのは危険です。
テスト用コピーで修正し、動作確認後に本番ファイルへ反映する流れにします。
影響範囲を確認する
VBAマクロは、1つのボタンに見えても、裏側で複数の処理を呼び出していることがあります。
確認すべき影響範囲は次のとおりです。
| 確認項目 | 見るべきポイント |
|---|---|
| シート | どのシートを参照・更新しているか |
| セル範囲 | 固定範囲か、可変範囲か |
| 外部ファイル | CSV、Excel、Access、共有フォルダの参照有無 |
| フォルダパス | 担当者PC依存のパスになっていないか |
| ボタン | どのマクロが割り当てられているか |
| 他のプロシージャ | 別の処理を呼び出していないか |
| 参照設定 | 特定PCだけで動く設定になっていないか |
| 帳票 | 出力形式や印刷範囲に影響しないか |
エラー処理があるか確認する
VBAでは、実行時エラーに対応するために On Error を使ったエラー処理が用意されています。
ただし、既存マクロでは次のような問題が起きていることがあります。
- エラーを無視して処理を続けている
- どこでエラーが起きたか分からない
- エラー時に中途半端なデータが残る
- エラーメッセージが利用者に分かりにくい
- ログが残らない
安全に改修するには、エラー発生時に次のことが分かるようにします。
- どの処理で止まったか
- どのファイル・シートで失敗したか
- 利用者が次に何をすればよいか
- 再実行してよい状態か
- 管理者に共有すべき情報は何か
修正で済むケース
次のような場合は、既存VBAの修正で済むことがあります。
- エラー箇所が特定できている
- 修正範囲が1つの処理に限定されている
- 入出力ファイルの形式が変わっていない
- 利用者が少ない
- 業務フローが変わっていない
- テストデータが用意できる
この場合は、影響範囲を確認したうえで、部分改修として進めやすいです。
作り直しを検討すべきケース
一方で、次のような状態では、単純な修正を繰り返すよりも、再設計を検討した方がよい場合があります。
- 担当者しか中身を理解していない
- 似た処理が複数のマクロに重複している
- ファイルパスが個人PCに依存している
- 集計条件が毎回手作業で変わる
- データ量が増えて処理が遅い
- 修正するたびに別のエラーが出る
- 仕様書や変更履歴がない
この場合は、いきなり作り直すのではなく、まずは現状を整理し、修正で済む部分と再設計すべき部分を切り分けることが大切です。
相談前に準備しておくとよい情報
外部に相談する前に、次の情報を整理しておくと状況を伝えやすくなります。
- 対象のExcelファイル
- エラー画面のスクリーンショット
- ボタンを押したときの操作手順
- 入力データのサンプル
- 出力したい帳票やCSV
- 現在困っていること
- 修正希望の期限
- 担当者が分かる範囲のメモ