この記事で分かること
- マクロ修正の外注費用やスケジュールに影響する既存ファイル確認の重要性
- 外注前に社内でチェックすべきマクロ・VBAの具体的な状態と項目
- 見積もり依頼をスムーズに進めるための準備手順とダミーデータの作り方
Excelマクロの修正を外注する前に現状把握が必要な理由
社内で長年利用しているExcelマクロ(VBA)に突然エラーが発生したり、業務フローの変更に伴って機能を改修したくなったりした際、社内に詳しい担当者がいない場合は外部の開発会社へ修正依頼(外注)を検討することになります。しかし、「とりあえずエラーが出るので直してほしい」とだけ伝えて、丸投げで依頼してしまうと、様々なデメリットが生じる可能性があります。
まず、マクロの開発会社は、修正作業に取り掛かる前に「既存のプログラム(VBA)がどのように組まれているか」を読み解くための「調査・解析」を行います。もし、事前情報が全くない状態でファイルだけを渡してしまうと、システム全体をイチから解析しなければなりません。VBAのコードは作成した人の「癖」が出やすく、ブラックボックス化しているケースも多いため、解析作業だけでも膨大な時間がかかります。その結果、本来の修正作業よりも「調査費用」が大きく上乗せされ、見積もりが高額になってしまう傾向があります。
また、開発会社とのやり取りの中で、「このファイルは他のシステムと連携していますか?」「このデータはどこから持ってきたものですか?」といった確認の往復が発生すると、実際の修正作業に入るまでに何日も経過してしまいます。あらかじめ「どこでエラーが起きているのか」「どのシートが対象なのか」「どのようなデータを使っているのか」を社内で確認して伝えておくことで、調査範囲が限定され、無駄なコストと時間を大幅に省くことができます。
外注前に必ず確認すべき既存ファイルの4つのチェックポイント
それでは、Excelマクロの修正を外注する前に、具体的にどのような点を確認すればよいのでしょうか。専門的なプログラミングの知識がなくても確認できる、重要な4つのチェック項目を詳しく解説します。
VBAプロジェクトのパスワードロックの有無
最も重要かつ最初に行うべき確認は、マクロのプログラム部分(VBAプロジェクト)に閲覧用パスワードが設定されていないかどうかです。作成者がすでに退職している場合、パスワードが分からないと開発会社であっても中身のコードを見ることができず、通常の修正作業ができないことがあります。
確認手順は非常に簡単です。対象のExcelファイルを開き、キーボードの「Alt」キーを押しながら「F11」キーを押して、VBE(Visual Basic Editor)という開発画面を開きます。画面左側の「プロジェクト – VBAProject」というウィンドウに表示されているファイル名をダブルクリックしてみてください。この際、パスワードの入力を求める小さなダイアログ画面が表示されなければ問題ありません。もし表示された場合は、過去の引継ぎ資料や社内マニュアル等からパスワードの控えを探しておく必要があります。
外部ファイルや他システムとの連携状況
該当のマクロが、そのExcelファイル単体で完結して動くものなのか、それとも他のデータと連動しているのかを確認します。連携先がある場合、修正作業には連携先のファイルやデータ構造の情報も必要になります。以下の表を参考に、現状の連携状況を整理しておきましょう。
| 連携のタイプ | 具体的な状況例 | 外注時に伝えるべきポイント |
|---|---|---|
| 別Excelファイル連携 | 共有フォルダにある別のExcelから数値を転記している | 参照先のファイルの保存場所(パス)とファイル名 |
| CSV・テキスト連携 | 社内システムから出力したCSVを取り込んで集計している | 取り込んでいる実際のCSVファイルのサンプル |
| データベース連携 | AccessやSQL Server等のデータベースと直接通信している | 接続先のデータベースの種類と、可能なら接続情報 |
| Webブラウザ連携 | Webサイト上のデータを自動で取得(スクレイピング)している | 対象となるWebサイトのURLと、ログインの有無 |
これらを漏れなく伝えることで、外注先での検証環境の構築がスムーズになり、「後から別の連携ファイルが必要だと判明して追加調査費用が発生する」といったトラブルを防ぐことができます。
マクロの実行対象となるデータ量とファイルサイズ
Excelファイルのデータ容量も重要な指標です。ファイルサイズが数十MBと異常に大きくなっている場合、マクロ自体のプログラミングの問題だけでなく、不要なデータが蓄積されていたり、非表示シートに膨大な数式が残っていたりすることが動作不良やフリーズの原因である可能性があります。
また、マクロが処理する行数が「数百行程度」なのか、「数万行から数十万行」に及ぶのかによって、開発会社が想定するプログラムの組み方が全く異なります。データ量が膨大な場合は、処理速度を優先した高度な設計(配列処理など)が必要になるため、普段どの程度のデータ量を処理しているかを事前に伝えると、より正確な見積もりが算出されます。
Officeのバージョンと現在の動作環境
マクロが作成された時期と、現在社内で使用しているMicrosoft Officeの環境を確認します。「数年前にExcel 2013で作られたものを、最近Microsoft 365環境へ移行したら急にエラーが出るようになった」というような、バージョンアップに伴う互換性の問題は非常に頻繁に発生します。
特に注意が必要なのが、WindowsとOfficeの「ビット数(32ビット版か64ビット版か)」です。古いマクロは32ビット版を前提に作られていることが多く、現在主流の64ビット版のExcelで動かすとエラーになる関数(API宣言など)が存在します。社内で使っているWindowsのバージョンと、Excelのバージョン情報を把握して伝えることで、外注先はどのような修正が必要かの見当をつけやすくなります。
スムーズに見積もりを取るための事前準備と手順
既存ファイルの状態が確認できたら、次は開発会社へ連絡する際に揃えておくと良い準備物についてです。口頭や文章だけでなく、視覚的な情報を提供することで、意図が正確に伝わります。
バックアップの取得と安全な保管
何よりも先に、対象となるExcelファイルの「バックアップ」を必ず取ってください。誤って上書きしてしまったり、社内で調査している最中に元の状態が分からなくなったりするのを防ぐためです。今日の日付を入れた新しいフォルダを作成し、そこにファイルのコピーを保管し、ファイル名に「_backup」などをつけておくのが最も安全な方法です。
エラー画面の記録と発生条件の整理
エラーが出てマクロが途中で止まってしまう場合は、そのエラーメッセージの画面をスクリーンショット(画面キャプチャ)で保存しておいてください。「実行時エラー ‘1004’」や「型が一致しません」などのエラー番号とメッセージは、プロのエンジニアにとって原因を特定するための非常に重要な手がかりとなります。
さらに、「どのシートを開いている時に」「どのボタンを押して」「どんなデータを入力した状態で」エラーが発生したのか、具体的な再現手順を箇条書きでメモしておくと、業者の解析時間が劇的に短縮されます。単にエラーを直すだけでなく、新機能の追加を依頼する場合は、現状の業務フローと改修後の理想の状態を簡単に整理しておきましょう。
既存ファイルをプロに見せて相談するのが一番の近道
専門知識がない担当者が、VBAの複雑な仕様をすべて正確に把握して、開発会社へ文章や口頭だけで伝えるのは非常に困難です。見積もり費用を適正に抑え、スムーズに依頼を進めるためには、「実際の既存ファイルを見せながら相談する」ことが最も確実で手っ取り早い方法です。
言葉だけで「エラーを直してほしい」と伝えると、開発会社は「どんな複雑なコードが書かれているか分からないため、一番手間がかかる最悪のケースを想定して、高めの見積もり(バッファを含めた金額)を出さざるを得ない」という状況に陥りがちです。しかし、既存のファイルをエンジニアが直接確認できれば、「この書き方なら、ここの数行を修正するだけで対応できる」「この機能は今回の改修に影響しないから調査を省ける」といった判断が瞬時に可能になります。結果として、無駄な調査費用を大きく削ることができます。
機密情報を保護するダミーデータの作り方
「実際のファイルを見せるのが一番」とはいえ、個人情報や社外秘の顧客データ、売上金額などが含まれているファイルをそのまま外部業者に渡すことはセキュリティ上できません。そこで必要になるのが「調査用のダミーデータファイル」の作成です。
ダミーデータを作る際の重要なポイントは、「列や行の構造(フォーマット)は絶対に崩さず、中身の文字列や数字だけを変更する」ことです。例えば、氏名を「テスト太郎」「テスト花子」に、電話番号を「090-0000-0000」に、売上金額を一律「10000」などに一括置換します。行を削除したり列を入れ替えたりすると、マクロの動作自体が変わってしまうため注意してください。多くの専門業者は正式依頼の前にヒアリングと簡易的なファイルの現状調査を行ってくれますので、まずは機密情報を伏せたダミーファイルを用意して、気軽に現状を提示して相談してみることをお勧めします。
パスワードが全く分からない既存マクロでも、修正依頼や調査をお願いすることは可能ですか?
はい、専門知識と実績を持つ開発会社であれば対応可能なケースが多いです。パスワード解析ツールを用いた対応や、現状の動きから仕様を逆算して新しいマクロとして作り直す(リプレイスする)などの代替案をご提案できます。ただし、通常の修正よりも解析にお時間をいただく可能性があるため、お問い合わせの際に「パスワードが不明である」旨を必ず事前にお伝えください。
VBAの専門知識が全くない担当者でも、外注先とスムーズにやり取りできますか?
全く問題ありません。優良な開発会社であれば、お客様に専門用語を使わせることはありません。「現在の業務でどういう手順で使っているか」「どこをクリックするとどんなエラーが出て困っているか」を、日常の業務でお使いの言葉のままお伝えいただければ大丈夫です。技術的な内部構造の把握はプロのエンジニアが行い、わかりやすい言葉で解決策をご説明いたします。
実際のファイルを業者に渡す際、セキュリティや機密保持はどうなりますか?
多くのシステム開発会社では、ファイルの受け渡しやお見積もりの前に、秘密保持契約(NDA)を締結することが可能です。法人としての契約を結ぶことで、情報漏洩のリスクを防ぎます。また、本記事でも解説した通り、事前に社外秘の実データを仮の数値(ダミーデータ)に置き換えたファイルを作成してお渡しいただくことで、より安全かつ迅速に調査を進めることができます。
エラーの修正だけでなく、今後のために機能の追加や画面の変更も一緒に依頼した方が良いでしょうか?
はい、同時にご依頼いただくことを強くお勧めします。外部の業者が既存のVBAコードを読み解く(解析する)タイミングで一緒に機能追加を行った方が、後から日を空けて別々に依頼するよりも、「調査・解析費用」が1回分で済むため全体のコストを大幅に抑えることができます。現状の不満点や追加したい機能がある場合は、見積もり依頼の段階で遠慮なくリストアップしてご相談ください。