Excel VBAツールの作り方|開発手法をプログラマーがコメント

公開日:2019年11月2日

Excel VBAツールの作り方

私はプログラミング未経験の事務職でしたが、30代後半から独学でプログラミングを学び現在はVBAプログラマー、SEとして働いています。

現在は当然のようにExcelや AccessのVBAツールを開発していますが、独学していた当時はインターネットや書籍で学習していたため、具体的な開発方法や現場のことについて具体的に知る機会がありませんでした。

VBAを学習している方の中には実際の現場でどのようにツールが開発されているのか知りたい方もいると思います。

そこで今回は実際の現場でExcel VBAツールがどのように開発されているのかを含め、作り方についてコメントします。

1.[Why]Excel VBAツールを作る目的は?

Excel VBAツールは事務作業の効率化を目的として開発されることがほとんどです。

今までは人が手作業で行っていた事務作業のうち、Excelファイルに関する部分をVBAツールを開発して自動化してしまうということです。

「効率化」とは、短時間でかつ正確に作業を行うことを意味します。

他にも「ユーザーが簡単に操作できる」「操作画面やマニュアルが分かりやすい」といったユーザービリティを通常は含みます。また、エラーでツールが止まらないような処理や、ユーザーが不必要なところを勝手にさわって適切に動作しなくならないような設計にする、といったことも満たす必要があります。

さらには、扱うデータには個人情報や機密情報を含むことが多いため、情報の取り扱い方に配慮します。

2.[What]どんなツールを作る?何を作る?

最も多かったツールの分類としては、あるシステムやデータベース、もしくはExcelファイルからツールが実装してあるExcelファイルにデータを反映(インプット)し、そのExcelファイル内のデータを加工して報告書フォーマットを作成するツールや、会計ソフトや給与計算ソフトなど他の業務系アプリケーションにインポートするcsvデータを作成する(アウトプット)ようなツールです。

Excelファイルにありがちですが、ある程度フォーマットは決まっていますが、加工しやすいExcelであるため、部署単位や個々人で微妙に情報の列位置が異なっていたり、シート名やファイル名が異なっている、イレギュラーなケースが存在するため、このようなイレギュラーにどのように対応するかが、Excel VBAツールの肝の1つだと思います。

また、Excelには多種多様な機能が存在しますので、VBAプログラミングとこれらの機能をいかに上手に組み合わせて開発するかも重要です。

その他、他のシステムやアプリと連携するので、WEB(特にIE)操作のプログラミングやSQL言語、業務系アプリケーションの知識、コマンドプロンプト操作についても理解が必要になります。

3.[Who]開発チームの構成は?

単独開発の場合がほとんどです。

ある部署全体で業務効率化プロジェクトが進行している、というケースがほとんどですが、開発の対象はプロジェクトの中の単体、もしくは複数のExcelツール群となり、単独開発で行うことになります。

プロジェクトのリーダーや依頼部署などから簡単に「こういったツールを作ってほしい」という依頼があり、そのから先は一人で開発します。

従って、Excel VBAツールの場合は、実装(プログラミング)だけでなく、要件定義や設計、テストも含めて単独で行います(ドキュメントするかどうかはケースバイケースです)。

4.[Where]開発場所は?

経理、経営企画、人事総務、営業事務などの事務作業を実際に行っている部署、チームのデスクが通常です。

周りは事務職の方々であり、依頼者もツール開発に詳しくない方ですので、技術的なことは1人で解決しなければならないことが少なくありません。

IT技術者のチームに所属して他部署の依頼を受けるケースもありますが、私の経験では、このようなケースは少ないです。

5.[When]開発期間は?

ツールの規模によって異なります。

簡単なツールは1日で完成させることもありますし、少し複雑でかつ複数のツール群を開発する場合には数か月かける場合もあります。

数か月かける開発の場合も、複数の業務プロジェクトにかかわっており、「ある業務のツール開発の一部の依頼を受けて開発し、納品→別の業務のツール開発→また最初に依頼を受けた業務のツール開発」といったように数か月の中で複数の業務ツールを開発するケースもあります。

上述の通り、単独開発が多くなるので、特に複数プロジェクトに関与する場合には自分でプロジェクトの工数を見積もり、スケジュール進捗の管理も行うといった、「自己マネジメントスキル」は問われます。

6.具体的な開発手順は?

「依頼者より簡単にヒヤリング(口頭またはメール、チャット)→入手した資料を見ながら情報を分析し、ツールに搭載する機能を検討→設計→実装→テスト→納品」というながれです。

Excel VBAツール開発の特徴としては、依頼者(エンドユーザー)はツール開発に詳しい方がいないケースが通常である、ということです。

また、新しいシステムやアプリの開発ではなく、Excelという既存のアプリ(officeソフト)に機能を追加する「ツール開発」であるため、依頼者も事務作業者1人、若しくはチームや部署の長など、多くても数人であり、開発自体も短期間で終わるようなツール作りがほとんどです。

単純なツール開発も多いため、ドキュメント化が必須である場合はそんなに多くありません。

しかし、複雑な動作を要求するツールや複数のツールが連携して一つの業務で利用されるようなツールの場合には、ユーザーマニュアルだけでなく、要件定義書や設計書、さらには業務手順書も作成します。

上述の通り、単独開発が多くドキュメント作成も行うことから、プログラミング知識だけでなく、プロジェクト管理や業界、業務、法令に関する知識など、多様なスキルが求められます。

まとめ

以上、Excel VBAツールの作り方について具体的な現場の開発者の視点でコメントしました。

VBA開発者を目指す皆さんのお役に立てば幸いです。

最後までお読み頂きましてありがとうございました。

Amazon Kindle Unlimited

10冊まで同時に読み放題の電子書籍サービス(200万冊以上が対象)。

PC・ITカテゴリーの対象数は7,000以上。

スキル、ノウハウ吸収や話題作りにと、ライフ・クオリティを高めてくれます。

関連記事

Topへ戻る