【よくわかる】VBAの外注ガイド!費用相場やマクロとの違い、外注が適さないケースまで深掘り解説

目次
業務上の定型作業に多くの時間と労力を費やしていませんか?
本記事では、Officeアプリケーションの反復作業を自動化する「VBA」の開発を外注するポイントや費用について解説します。
VBAとは?
VBAとは、「Visual Basic for Applications」の略称です。
Microsoft Office製品群(Excel、Access、Word、PowerPointなど)に標準で搭載されているプログラミング言語で、Office製品の利便性向上に役立ちます。
VBAでは、Office上で実施する定型的な操作や複雑な計算処理などを自動化できるプログラムの作成が可能です。
例えば、毎月行っているデータ集計やレポート作成、請求書の発行などを行うプログラムをVBAで作成すれば、これらの作業をボタン1つで実行できるようになります。
特に、Excelの作業を効率化するためにVBAを使うケースが多く、導入・活用する企業が増えています。
VBAを使って実装できる機能の例
続いて、VBAによって実装できる機能の代表例を、主にExcelに関して紹介します。
データ集計・加工の自動化
VBAを使うと、複数のファイルやシートに散在するデータを1つのシート内で自動集計することができます。
例えば、各営業担当者が個別に管理している売上報告ファイルを、月次売上レポートとして1シートへ集計・統合することが可能です。
さらに、プログラムに組み込めば、データの並べ替え、フィルタリング、不要な行の削除といった加工作業も実施できます。
定型的なレポート・帳票の作成
毎月・毎週・毎日など、定期的に作成するレポートや帳票をVBAで自動生成することができます。
そのため、売上データから請求書を自動作成してPDF形式で出力したり、勤怠データから給与計算表を自動で作成したりする業務の自動化が可能になります。
他アプリケーションとの連携
VBAによって、Excelと他のアプリケーションとを連携させることも可能です。
例えば、Excel上の顧客リストをもとにOutlookでメールを作成し、一斉送信できる機能の実装が可能です。
また、「Accessデータベースからデータを抽出し、Excelでグラフ化してレポートを作成する」といった、複数のOfficeアプリケーションをまたいだ作業も自動化することができます。
入力フォームの作成
Excelシート上に専用の入力フォームを作成し、必要なデータを入力する機能なども実装できます。
選択肢をドロップダウンリストにしたり、入力必須項目が未入力の場合はエラーメッセージを表示したりするなどの入力ルールをプログラミングすれば、データの標準化と品質向上にもつながります。
ExcelマクロとVBA開発の違い
「マクロ」と「VBA」という言葉はしばしば同じような意味で使われますが、厳密には意味が異なります。
ここでは、両者の違いを説明します。
マクロとは
マクロとは、Excel上で行った一連の操作を記録し、同じ手順を再現する機能のことです。
例えば、「特定のセルをコピーし、別のシートに貼り付け、文字の色を変える」といった操作を「マクロの記録」機能を使って記録しておけば、次回からはボタンを押下するだけで一連の操作を自動実行できます。
プログラミングの知識がなくても、活用しやすいのがマクロの大きな特徴です。
VBAとは
VBAは、前述の通りプログラミング言語そのものを指します。
「マクロの記録」機能を使うとき、記録された操作の内容は裏側でVBAコードとして生成されています。
生成されたVBAコードを直接編集すると、マクロの記録機能だけでは実現できない、より高度で複雑な処理の実装が可能になります。
例えば、条件によって処理を分岐させたり(If文)、同じ処理を何度も繰り返したり(Forループ)、エラーが発生した場合の対処を組み込んだりすることができます。
「マクロ」は操作を記録・再現する「機能」の名称であり、「VBA」はそのマクロを動かしている「プログラミング言語」と考えるとわかりやすいかもしれません。
簡単な定型作業の自動化であればマクロの記録で十分ですが、複雑な条件分岐や他システムとの連携などといった高度な作業の自動実行を実装したい場合には、VBAを用いた専門的な開発が必要となります。
VBA開発の外注先
VBA開発を外注する場合、依頼先は主に3つに分けられます。
それぞれの特徴を理解し、自社の目的や予算に合った依頼先を選びましょう。
1. システム開発会社
【特徴】
システム開発会社は、主に業務システムの開発を専門に行っている会社を指します。
中には、VBA開発を専門に請け負う会社もあります。
法人としてVBA開発の契約を結ぶため、要件定義から設計、開発、テスト、納品後の保守まで、一連のプロセスを体系的に進めてくれることがほとんどです。
また、秘密保持契約の締結など、セキュリティ面での信頼性が高いことも特徴です。
【向いているケース】
大規模で複雑なツールの開発や、基幹システムとの連携が必要な開発、セキュリティ要件が厳しいVBA開発などに適しています。
2. フリーランス(個人事業主)
【特徴】
フリーランスを探せるマッチングプラットフォーム(ランサーズ、クラウドワークスなど)や、フリーランス個人のウェブサイトを通じて、VBA開発スキルを持つ個人に直接依頼することができます。
開発会社に依頼するよりも、費用を安く抑えられるケースが多い点が最大のメリットです。
フリーランス個人と直接やり取りを行うため、コミュニケーションが迅速で、柔軟な対応を期待できる場合もあります。
【向いているケース】
比較的小規模なVBA開発や、開発前から仕様が明確であるケース、ある程度自社でディレクションができるケースなどに適しています。
また、コストを最優先したい場合にも向いています。
3. オンラインアシスタントサービス
【特徴】
さまざまなバックオフィス業務を、オンラインでサポートしてくれるサービスです。
月々の実働時間に応じた契約となり、一般的なバックオフィス業務に加えて、VBAやGAS(Google Apps Script)を用いた業務効率化ツールの作成を依頼できる場合もあります。
開発後の運用や、他の事務作業と組み合わせて依頼できることもありますが、サービスによっては受け付けていない場合もあります。
【向いているケース】
VBA開発そのものが目的ではなく、バックオフィス業務全体の効率化を目指している場合に適しています。
継続的にさまざまな業務をサポートしてほしい企業にも有効です。
VBA開発の外注費用相場
VBA開発を外注する際の費用は、開発するツールの規模や複雑さによって大きく変動します。
ここでは、一般的なVBA開発費用の相場を、開発規模別に解説します。
小規模な開発(数万円~20万円程度)
【内容】
比較的単純な作業を自動化するツールがこの範囲に含まれます。
数時間から数日で開発が完了するものが目安です。
【具体例】
特定のフォーマットのExcelデータを、別のフォーマットに転記するマクロ。
簡単なデータ集計とグラフ作成を自動化するツール。
定型的な請求書を数件作成するマクロ。
中規模な開発(20万円~50万円程度)
【内容】
複数の機能や条件分岐を実装する必要がある、より実用的なツールがこの範囲に含まれます。
開発期間は1週間から1ヶ月程度が目安となります。
【具体例】
複数のExcelファイルからデータを収集し、集計してレポートを自動生成するツール。
専用の入力フォームを備え、入力ミスをチェックしながらデータを蓄積するシステム。
顧客リストから、条件に合致する顧客にのみメールを自動送信するツール。
大規模な開発(50万円~)
【内容】
複数のシートやファイルを複雑に連携させたり、外部のデータベースと接続したりする、業務システムに近いレベルのVBA開発がこの範囲に該当します。
詳細な要件定義や設計が必要となり、開発期間も1ヶ月以上かかることが多くなります。
【具体例】
簡易的な在庫管理システムや顧客管理システム(CRM)。
Excelをインターフェースとした、Accessデータベースの操作ツール。
複雑な業務フロー全体を自動化する、部門レベルの効率化ツール。
上記の相場はあくまで目安です。
正確な開発費用を知るためには、実装したい機能や内容を具体的に伝え、複数の依頼先から見積もりを取った上で比較検討しましょう。
VBA開発の外注費用が決まる要素
VBA開発の費用は、主に以下の要素によって決まります。
見積もりを依頼する際に、これらの要素を整理しておくと、より正確な費用を算出できます。
1. 機能の数と複雑さ(工数)
最も大きく費用に影響するのが、開発対象となる機能の数と、各機能の複雑さです。
例えば、単純なデータ転記と、複雑な条件分岐や計算処理とでは、開発にかかる時間(工数)が大きく異なります。
開発工数は「人日」や「人月」という単位で見積もられ、「単価 × 工数」が基本的な開発費用となります。
2. 画面や帳票の数
ユーザーが操作する入力フォームの画面や出力するレポート・帳票の種類が多いほど、 VBAで作成するオブジェクトも増えるため、費用は高くなります。
例えば、入力画面が1つのツールと5つのツールでは、開発工数は大きく異なります。
3. 対象となるデータの量と形式
処理するデータの量や形式も費用に影響します。
データ形式が統一されておらず、VBAで処理する前にデータのクレンジング(整形)が必要な場合は、その分の作業工数が追加で発生します。
4. ドキュメント作成の有無
VBAで開発したツールの操作マニュアルや、プログラムの仕様書、設計書などといったドキュメントの作成を依頼する場合、その作成費用は別途必要となることが一般的です。
開発したVBAツールの運用・管理に加えて、将来的なメンテナンスや追加開発などをしやすくするためには、ドキュメントの作成も依頼しておくことが推奨されます。
5. 納品後の保守・サポートの範囲
納品後の不具合対応や、OS・Officeのバージョンアップに伴う修正、機能追加といった保守・サポートを依頼する場合、月額や年額で保守契約費用が発生します。
自社に常駐してサポートしてもらう・リモートでサポートしてもらう・問い合わせフォームやメールなどで連絡して対応してもらうなど、どこまでのサポートを依頼するかによって金額は大きく変わってきます。
VBA開発を外注するメリット
専門知識が必要なVBA開発を外部に委託することには、多くのメリットがあります。
メリット1:高品質なツールによる確実な業務効率化
VBA開発のプロフェッショナルは、豊富な経験と知識を持っています。
そのため、エラーが少なく、将来的な仕様変更にも対応しやすい、安定した品質のツールを開発してくれます。
自社の担当者が見様見真似で作成したマクロと比べて、はるかに高いレベルでの業務効率化が期待できます。
業務に対して確実な成果を求めたいのであれば、プロに任せると良いでしょう。
メリット2:開発にかかる時間と労力の削減
VBA開発には、プログラミングの学習や、エラーの原因を調査・特定するデバッグ作業など、多くの時間と労力がかかります。
これらのプロセスをすべて外注することで、自社の従業員は、本来の専門分野であるコア業務に集中することができます。
従業員の貴重な時間を、不慣れなVBA開発ではなく、企業の利益に直結する業務に振り分けられることは、生産性向上の観点からも有効です。
メリット3:自社にない専門的な知見の活用
経験豊富なVBA開発者は、自社では思いつかなかったような、より効率的な業務プロセスの改善案を提案してくれることがあります。
単に言われた通りのツールを作るだけでなく、コンサルティング的な視点から新たなアドバイスを受けられることも外注の大きなメリットです。
客観的な第三者の意見を取り入れることで、業務全体の見直しにつながる例もあります。
メリット4:属人化のリスク回避
社内にVBAを扱える人材がいたとしても、その人が退職・異動してしまった場合にはVBAツールの修正やメンテナンスが誰にもできなくなるという「属人化」のリスクが生じます。
VBA開発の外注と併せて、仕様書や操作マニュアルなどのドキュメントも作成・納品してもらうことで開発内容がブラックボックス化するのを防ぎ、将来的なメンテナンスも依頼しやすくなります。
VBA開発を外注する際のポイント
VBA開発の外注を成功させるためには、依頼先を慎重に選ぶことが重要です。
ここでは、外注先を選ぶ際にチェックすべき4つのポイントを解説します。
ポイント1:依頼したい内容を明確に、具体的に伝える
外注を成功させるための最も重要なポイントは、自社が「何に困っていて、何を自動化したいのか」を明確にすることです。
「この作業を楽にしたい」といった曖昧な依頼ではなく、「AというファイルのB列の値を、CというファイルのD列に転記し、Eの条件に合致すれば色を付ける」というように、現在の業務フローと、自動化によって実現したいゴールを具体的に伝えましょう。
内容が明確であるほど手戻りが少なく、期待通りのVBAツールが完成する確率が高まります。
ポイント2:実績と得意分野を確認する
依頼を検討している外注先について、過去の実績やポートフォリオを確認しましょう。
自社が依頼したい内容と類似したVBAツールの開発実績が豊富であれば、スムーズなコミュニケーションと高品質な開発が期待できます。
特に、業界特有の業務を自動化したい場合は、その業界の知識がある開発者を選ぶと、より的確な提案を受けられるでしょう。
ポイント3:コミュニケーションの円滑さ
開発中には、仕様の確認や進捗報告など、開発者(外注先)との間で何度もやり取りが発生します。
こちらの意図を正確に汲み取ってくれるか、質問に対するレスポンスは迅速か、説明はわかりやすいかなど、コミュニケーションが円滑に進む外注先であることを確認しておくことが重要です。
契約前の問い合わせや見積もり依頼の段階で、担当者の対応品質を見極めましょう。
ポイント4:納品後のサポート体制
開発・納品されたVBAツールを実際に運用していく中で、軽微な修正や、操作に関する質問などが発生することがあります。
また、将来的にOfficeがバージョンアップした際にツールが動かなくなる可能性もあります。
納品後の不具合にどこまで対応してくれるのか、その後の保守や追加開発にはどのように対応してくれるのか、アフターサポートの体制や費用を契約前に必ず確認しておきましょう。
VBA開発を外注する際の注意点
VBA開発の外注には、いくつか注意すべき点もあります。
これらを事前に理解しておくことで、トラブルを未然に防ぐことができます。
注意点1:セキュリティ対策
開発を依頼するにあたり、自社の業務データや顧客情報などを外部の開発者と共有する必要が出てくる場合があります。
情報漏洩を防ぐため、契約前には必ず秘密保持契約(NDA)を締結しましょう。
また、依頼先がどのようなセキュリティポリシーを持っているか、データの管理方法などを確認することも重要です。
特に、個人情報を扱う場合は、信頼できる法人格の業者を選ぶのが安全です。
注意点2:著作権の所在
開発を依頼して作成されたVBAツールの著作権が、依頼者(自社)と受注者(開発者)のどちらに帰属するのかを、契約時に明確にしておく必要があります。
費用を支払って開発を依頼したツールの著作権は、依頼者に譲渡されるよう契約書に明記することが一般的です。
この点が曖昧だと、後からツールを自由に改変できなかったり、類似のツールを他社に販売されたりするトラブルにつながるおそれがあります。
注意点3:過度な期待をしない
VBAは、あくまでExcelなどのOfficeアプリケーション上で動作するプログラムです。
そのため、Webアプリケーションのような大規模なシステムの開発や、非常に高速な処理が求められる業務には向きません。
VBAでできることには限界があるという点を理解し、実装したい機能がVBAの範囲で実現可能かどうかを開発者とよく相談することが重要です。
場合によっては、VBAではなく、別のシステムを導入したほうが良いケースもあります。
VBA開発の外注が適さないケースとは
業務効率化に有効なVBA開発の外注ですが、必ずしもすべてのケースで最適とは言えません。
以下のような場合には、外注が適さない可能性があります。
自動化したい業務プロセス自体が頻繁に変わる場合
業務の手順やルールがまだ固まっておらず、頻繁に変更されるような業務をVBAで自動化してしまうと、その都度プログラムの修正が必要になります。
修正のたびに外注費用が発生し、かえってコストが高くついてしまう可能性があります。
まずは業務プロセスを標準化し、ある程度固定化してから自動化を検討することが重要です。
マクロの記録機能で十分な単純作業
前述の通り、Excelの「マクロの記録」機能を使えば、プログラミング知識がなくても簡単な反復作業を自動化できます。
毎回決まった手順で行うデータ転記や書式設定など、条件分岐を伴わない単純な作業であれば、わざわざ費用をかけて外注するまでもなく、自社の担当者がマクロの記録機能で対応できる場合があります。
元となる業務プロセスに根本的な問題がある場合
VBAは、あくまで既存の業務を効率化するためのツールです。
もし、自動化したい業務プロセスそのものに無駄な手順や根本的な問題がある場合、その非効率なプロセスをそのまま自動化しても、大きな効果は得られません。
VBA開発を外注する前に、まずは業務プロセス自体の見直し(BPR)を行い、最適な業務フローを確立することが先決です。
VBA開発の外注なら『Chatwork アシスタント』がおすすめ!
「本格的なシステム開発会社に頼むほどの規模ではないが、日々のExcel業務を効率化したい」。
「VBA開発だけでなく、その前後の事務作業もまとめてサポートしてほしい」。
このように、より柔軟で幅広いサポートを求めている企業におすすめしたいのが、『Chatwork アシスタント』です。
『Chatwork アシスタント』は、国内利用者数No.1のビジネスチャット「Chatwork」が提供する、オンラインアシスタントサービスです。
経理、秘書、人事、総務といった幅広いバックオフィス業務を、厳しい採用試験を突破した優秀なアシスタントがチームでサポートします。
このサービスの大きな特徴は、通常の事務作業に加えて、VBAやGAS(Google Apps Script)を用いた業務効率化ツールの作成にも対応している点です。
月々の実働時間に応じた契約で、VBAツールの開発から、そのツールを使った日々のデータ入力、レポート作成まで、一連の業務をワンストップで依頼することが可能です。
開発と実務運用をシームレスに連携させたい企業には、特におすすめのソリューションといえます。
まとめ
本記事では、VBA開発の外注について詳しく解説しました。
日常的に行われている定型作業に多くの時間と労力が費やされており、業務効率化の大きなボトルネックとなっている企業は少なくありません。
自社が抱える業務上の課題を明確にし、適したVBA外注先を見つけてみてください。