この記事で分かること
- 複数部門で使われるExcelマクロ改修において、既存業務の確認とフローから影響範囲を正しく調査する手順
- 部門間の利害対立や要望のズレを調整し、関係者からの合意(承認)をスムーズに獲得する方法
- 改修後の不具合や手戻りを防ぐために、本番リリースまでに実施すべき受け入れテストと並行稼働の進め方
複数部門で使われるExcelマクロ改修が直面する3つの課題
Excelマクロは手軽に業務を効率化できる強力なツールですが、利用者が複数の部門にまたがると、システム開発と同等の慎重さが求められます。改修プロジェクトが難航しやすい主な要因として、以下の3つの課題が挙げられます。
1. 部門間での「業務フロー」と「認識」のズレ
同じ1つのExcelファイルであっても、部門ごとにそのファイルに対する「役割」や「期待する精度」は異なります。例えば、営業部門にとっては「とにかく早く数値を入力できればよい」という使い勝手が優先される一方で、経理部門にとっては「1円の狂いもなく正確に集計し、規定のフォーマットで基幹システムに連携できること」が絶対条件になります。このように、上流工程(営業)と下流工程(経理)でデータの重要度や処理ルールが異なるため、一部署の要望だけでマクロの仕様を変更すると、他部署の業務を麻痺させてしまうリスクがあります。
2. 「秘伝のタレ」化した複雑なVBAコード
長年にわたり、様々な担当者が場当たり的に修正を繰り返してきた「野良マクロ」や「秘伝のタレ」化したExcelファイルは、プログラム(VBAコード)がスパゲッティのように複雑に絡み合っています。コード内に、特定の個人PCのフォルダパスが直接書き込まれていたり(ハードコーディング)、不要になったはずの過去の処理がそのまま残っていたりすることも珍しくありません。この状態では、1箇所のコードを修正しただけで、全く関係がないと思っていた別部門の集計処理にエラーが発生する「デグレ(品質の先祖返り)」が容易に発生します。
3. 責任の所在が曖昧(システムオーナー不在問題)
社内の公式な基幹システムであれば、IT部門やDX推進部門がシステムオーナー(全体責任者)として管理を行いますが、Excelマクロは「現場の便利ツール」としてスタートすることが多いため、誰が最終的な意思決定(承認)を行うべきかが曖昧になりがちです。「改修後にエラーが発生して業務が止まった際、誰が復旧の責任を持つのか」「改修予算や工数は誰が承認するのか」といった組織的なガバナンスが効きにくい点が、改修プロジェクトを長期化させる大きな要因です。
改修前に必ず実施すべき「影響範囲」の調査プロセス
複数部門で使われているExcelツールの改修において、最も重要かつ時間を割くべきなのが「影響範囲(インパクト)の事前調査」です。プログラムを書き換える前に、以下の3ステップで調査を進めましょう。
ステップ1:既存業務の確認と全体業務フローの可視化
いきなりVBAコードを読み解くのではなく、まずは「そのExcelファイルが社内でどのように流れているのか」という物理的な業務フロー(データフロー)を整理・可視化します。各部門の担当者にヒアリングを行い、以下の項目を確認します。
- インプット(入力源):手入力なのか、他システムからのCSV出力なのか、別のExcelファイルからのコピー&ペーストなのか。
- プロセス(処理):マクロを実行するタイミング、マクロ実行前に手動で行っているフィルタやデータ加工の手順。
- アウトプット(出力先):マクロ実行後に生成される帳票、PDF、基幹システム取り込み用CSV、自動送信されるメールの宛先。
この業務フローの整理(既存業務の確認)を行うことで、「A部門の入力漏れが、B部門のマクロエラーを引き起こしている」といった根本原因を突き止めることができます。
ステップ2:VBAコードの静的解析と外部依存関係の特定
次に、マクロのプログラム(VBA)を開き、改修予定箇所がどこに紐づいているかを解析します。特に注意すべきは「外部への依存」です。コード内に以下のような処理が含まれていないかを確認します。
- 外部ファイルや別フォルダへの参照、リンク(
Workbook.Open、ActiveWorkbook.LinkSourcesなど) - データベース(AccessやSQL Serverなど)への接続(ADO、DAOの記述)
- 特定のプリンタ名やネットワークドライブ、特定のPCユーザー名への依存
ステップ3:影響範囲マトリクス(対比表)の作成
調査結果を整理し、専門知識のない業務担当者や意思決定者でもひと目で影響度が把握できるよう、以下のような「影響範囲マトリクス」を作成します。
| 改修予定の機能・項目 | 主な影響部門 | 想定される業務上の影響(変更点) | 発生しうるリスクと対策 |
|---|---|---|---|
| ①入力画面のレイアウト(列・項目の追加) | 営業部、経理部 | 営業部の入力フォームが変更される。経理部の自動集計マクロでの列ズレ。 | 経理部の集計用マクロのプログラム側でも、列インデックスの調整(改修)をセットで行う。 |
| ②マクロによるCSV出力機能のフォーマット変更 | 製造部、IT部門 | 基幹システムへインポートするCSVヘッダーや日付形式が変更。 | 基幹システム側の取り込みエラー。本番移行前にインポートテストを必須化する。 |
| ③印刷処理プロシージャの修正 | 総務部、各営業所 | 印刷時の用紙サイズ、余白設定、使用するプリンタトレイの変更。 | 営業所ごとの複合機の設定差による文字切れ防止のため、各拠点でテスト印刷を依頼する。 |
この表を作成することで、「どこを改修すると、どの部門の業務に、どのような影響を及ぼすか」が明確になり、関係部門との対話や説明が格段にスムーズになります。
円滑に関係者の合意を得る「合意形成と承認」の3ステップ
影響範囲が可視化されたら、次は関係部門の合意(ステークホルダーの承認)を得るフェーズへと進みます。複数部門が絡むプロジェクトでは、以下のステップで慎重に合意を形成します。
1. 各部門の「業務キーマン」を早期に特定し巻き込む
承認を得る際、いきなり部門長(決裁者)に承認を求めてはいけません。まずは各部門で実務を最もよく知っている「業務リーダー(キーマン)」に相談を持ちかけます。
「今度、Excelツールのここを改修しようと考えているのですが、御部署の業務で何か困っていることや、あわせて改善したい要望はありますか?」と、早い段階でアプローチします。当事者として初期からプロジェクトに巻き込んでおくことで、後のテスト協力や仕様のすり合わせが非常に協力的になります。
2. 要件定義の段階で「トレードオフ」を可視化・提案する
各部門の意見を聞くと、高確率で「利害の対立」が発生します(例:営業部は「入力は1項目でも減らしたい」が、経理部は「分析のために詳細な区分コードを必須入力にしてほしい」など)。
このような場合、単にどちらか一方の意見を通すのではなく、システム推進側が「全社的な業務コストの削減」を判断基準として、妥協点(トレードオフ)を論理的に提示します。例えば、「営業部は手入力をせず、得意先マスターから自動で区分コードを補完するマクロを組む」といった、双方にメリットのある代替案を提案することが重要です。
3. 形式的な「改修承認プロセス」を敷き、言った言わないを防ぐ
「Excelマクロだし、口頭で了承をもらったから大丈夫」と、カジュアルに進めてしまうのは危険です。改修を本番適用した後に「そんな仕様変更は聞いていなかった」「前のほうが使いやすかった、元に戻してほしい」といったトラブルに発展することが多いためです。
簡単でもよいので「改修計画書」や「仕様合意書」を作成し、関係部門の責任者(部長や課長クラス)から書面、または電子承認(ワークフロー)で正式に承認(サイン)をもらう手順を徹底しましょう。これにより、全員が「当事者意識」を持ってプロジェクトを見守るようになります。
複数部門でのExcelマクロ改修を安全にリリースするための4つの実務ポイント
承認を得て実際にマクロの改修作業(VBAコードの書き換え)を完了させた後、最後の難関である「本番リリース」をトラブルなしで成功させるための4つのポイントです。
① 本番環境とテスト環境の厳格な分離
現在稼働している本番用Excelファイルを直接編集しながらテストを行うのは、絶対にNGです。必ず「テスト用」としてファイルをローカル環境や開発専用フォルダにコピーし、ファイル名に「【テスト中】」などのプレフィックス(接頭辞)を付けて区別します。また、マクロが外部のデータベースや本番用共有フォルダのCSVを読み書きしている場合は、テスト実行時にテスト用の仮フォルダを参照するよう、コード内の環境切り替えロジックを設けておきます。
② 部門合同での「受け入れテスト(UAT)」の実施
開発者側の単体テストだけで「動いた」と判断するのは不十分です。実際にそのExcelマクロを操作する、影響対象の全部門の担当者に立ち会ってもらい、実務データを使った「受け入れテスト(User Acceptance Testing)」を実施します。
普段行っているイレギュラーな入力方法や、想定外のデータが紛れ込んだ際に、マクロが正しくエラーを吐いて停止するか、処理が意図通り行われるかを、実務担当者の目で確認してもらうことで、実運用時における不具合の発生確率を極限まで下げることができます。
③ 新旧ツールの「並行稼働期間(ダブルラン)」の設定
一斉に新しいExcelツールへと移行するのではなく、一定の「並行稼働期間(ダブルラン)」を設定することをお勧めします。最低でも1週間〜1ヶ月、もしくは月次決算などの1業務サイクルにおいて、旧マクロと新マクロの両方を同時に動かし、出力される計算結果(数値)に差異がないか(突合検証)を行います。これにより、万が一新ツールに潜在的なバグがあっても、即座に旧ツールで業務をリカバリーできます。
④ バージョン管理(世代管理)と操作マニュアルの更新
Excelマクロは、気がついたらどれが最新版か分からなくなる「先祖返り」が起きやすいツールです。改修履歴を管理するための「更新履歴シート」をExcel内に用意し、以下の情報を必ず残しましょう。
- 更新日時、更新者、バージョン(例:Ver.2.1)
- 今回の改修内容(どのコードをどう書き換えたか、どの不具合に対応したか)
また、操作手順(ボタンの位置や画面レイアウトなど)が変わる場合は、簡単な画面キャプチャを貼っただけの簡易マニュアルで構いませんので、手順書を更新し、関係部門へ周知徹底を行います。
Q. Excelマクロの担当者がすでに退職しており、ブラックボックス化しています。どう進めればよいですか?
A. 担当者不在でコードの解読が困難な場合は、無理にVBAのソースコードを読み解こうとせず、まずは「現行業務の棚卸し」から始めるのが安全です。ユーザーが「どのようなデータを手入力し、マクロボタンを押した後にどんな形式の出力ファイルを得ているのか」という外側の仕様(ブラックボックステストのアプローチ)を徹底してヒアリングします。その仕様をもとに、コードを再構築するか、あるいは自力での解析が難しい場合は、VBA解析やExcel・Accessの修復を得意とする外部の専門ベンダーに「コード診断」や「業務フローの再設計」を依頼することをお勧めします。
Q. Excelマクロの改修限界を感じています。Webシステム化など他ツールへの移行を考えるべき基準は?
A. 複数部門で使っている場合、以下の3つの事象が顕著になってきたらExcelマクロ(VBA)の限界を超えているサインであり、Webシステム化やAccessデータベースへの移行を検討すべきです。
1. 「同時に複数人で入力・編集を行いたい」という要望が強く、衝突が頻発している。
2. データ量が数万件を超え、Excelの起動やマクロの実行速度が著しく低下してフリーズするようになった。
3. 誰がいつデータを変更・削除したのかの「操作ログ(監査証跡)」をセキュリティ観点から厳格に管理する必要が出てきた。
Q. 関係部門が非協力的で、ヒアリングやテストが進まない場合の対処法は?
A. 他部門にとって、マクロの改修は「本来の自分の仕事以外の、追加の負担(面倒な仕事)」と感じられがちです。協力を得るためには、「今回の改修を行うことで、あなた方の部署の手作業がどれだけ削減されるか」「手戻り業務がなくなってどれだけ楽になるか」という、相手部門にとってのメリット(ベネフィット)を明確に示すことが有効です。それでも進まない場合は、プロジェクト開始の段階で、各部門を管轄する役員や部門長から「この改修は全社的なDX推進の一環である」とトップダウンで意思決定・周知してもらう段取りを踏むことが解決の近道です。