ExcelVBAを使用すれば、それなりに使えるツールを開発することができます。
しかし、業務効率化ツールは業務の数だけ必要で、かつ業務をこなしながらツールを開発するとなると、なかなか時間がとれないと思います。
この記事では、短時間でExcelVBAでツールを開発する方法を紹介します。
0. この記事のまとめ
- 必要な情報をリストアップし、Excelワークシートに書き出す。
- 処理フローをコメントで書く。その後にコーディングする。
- よく使うコードは、いつでもコピペできるようにメモしておく。
- テストは必要な部分のみに絞ってしっかり実施する
- 手順書や利用上の注意点は必ずドキュメントとして残す。
1. 必要な情報をリストアップし、Excelに書く
例えばメール自動送信ツールを作りたい場合、必要な情報とは以下のようになると推測されます。
- 宛先メールアドレス
- メール件名
- メール本文(可変可能)
- 添付ファイルパス
このように、ツールの実行に必要な情報をリストアップし、いつでも追記・変更できるようにExcelワークシート内に記入しておきます。
ワークシートなのかデータベースなのかはツールの機能要件によって異なりますが、ワークシートに直接記載する方が、データのメンテナンスがとっても簡単です。
こうすることで、いつでもVBAコードから必要な情報にアクセスできる体制を整えます。
2. 処理フローをコメントで書く
いきなりコーディングに入るのではなく、どういう順番で処理すれば実現できるのかを考えましょう。考えながら、VBAのコードにコメントとして記入していきましょう。
たとえばメール自動送信ツールだとすると、以下のような処理フローになると思われます。
-
- 宛先メールアドレスリストをループする
- 1.1. 宛先メールアドレスを1件読み取る
- 1.2. メール件名を取得する
- 1.3. メール本文を取得する。必要に応じて可変部分を置換する
- 1.4. 添付ファイルの存在チェックを行う
- 1.4.1. 添付ファイルが存在する場合、メールに添付する
- 1.4.2. 添付ファイルが存在しない場合、なにもしない
- 1.5. Outlookメールを送信する
-
- 次の行の宛先メールアドレスリストを参照する
処理フローを書いたら、何度も見返して、バグが無いか確認しましょう。
3. コーディングする(コメントをコードに単純変換する)
コメントで書いた処理フローが問題なければ、VBAコードにしていきましょう。
VBAコードは、コメント記載内容をそのまま変換するだけですので、何も考える必要はありません。そのまま機械的に変換すればいいだけです。
音楽を聞きながらでも、自分にはあまり関係ないウェブ会議を片耳で聞きながらでも、コーディングできます。
4. よく使うVBAコードは、いつでもコピペで使えるようにしておく
たくさんツールを作ると、何度か同じようなコードを書くことがあると思います。そのたびにGoogleで検索してコピペするよりは、自分のコピペコードを用意しておいて、これを使いまわして行くほうが効率がいいです。
Google検索する回数を減らして、自分のコードメモからコピペでコーディングするほうが何倍も時間を短縮できます。
5. テストケースを考えて、テストする
コーディングが出来たら、テストケースを考えましょう。
テストケースは、大きく分けると以下の2つに大別されます。
- 機能要件テスト(設計段階で必要と判断した機能が設計どおりに実装できているか)
- 非機能要件テスト(処理時間や最大データ件数などの指定がある場合、基準値をクリアできているか)
非機能要件テストを行う必要がないのであれば、機能要件テストに絞ってテストしましょう。
テストは必要最低限のものだけとし、淡々とテストしていきましょう。
どんな簡単なツールでも、テストは必ず実施する必要があります。なぜなら、リリース後に不具合が発覚すると、即日対応が求められたり、現在進行中の業務への影響調査など、対応に時間がかかるからです。
かといって、無駄なテストはする必要はありません。 必要最低限なテストのみ、淡々とこなしていきましょう。
6. 簡易的な操作手順書と処理時の注意点をまとめる
人間は忘れっぽい生き物ですので、記憶が飛ぶことが多々あると思います。さらに、操作方法や処理時の注意点などは、ソースコードを見ただけでは分かりません。
よって、ツールなど簡易的なシステムであっても、操作方法と注意事項は必ずドキュメントとして残しましょう。
あとからソースコードを見返して確認するとかなりの時間が取られてしまいます。ツール作りたての記憶が新しい今のタイミングで実施していきましょう。
7. 最後に
時間は有限ですので、できるだけ効率よく開発できれば、早く帰宅したり自由に時間を使うことができます。
この記事が開発効率向上に少しでも貢献できたらと願っています。
コメント