Let's VBA¶
なぜVBAか?¶
- Windows環境であれば、たいていExcel入っている。
(一般の人が使える唯一?のインタプリタ)
- Mac でも動く。
(Office for Mac 2010)
- 業務系の職場ではユーザが多い。
引き継ぎ相手がいる可能性が高くなる。
VBAのメリット¶
- 普及
- MS Office の普及率が高く、たいていの運用現場で利用されている。
- MS Office がインストールされていれば、開発/実行環境は含まれている。
- Windows系の運用現場では引き継ぎがしやすい。受け入れられやすい。
- 自動化範囲が広い
- 集計・分析の自動化 (Excel)
- Web操作の自動化 (Excel & IE)
- JavaScript の知識が無くても DOMを利用したWeb操作の自動化が容易に実現できる。(IEモジュール利用: Windowsのみ)
- XML を扱える。
- 実は JSON も比較的簡単に扱える(らしい、けどまだ未経験)
- レポート作成の自動化 (Execl & PowerPoint)
- PowerPoint での定期定型レポート提出について自動化がしやすい。
- メール受信トリガーによる自動作業 (Outlook & Excel -> PowerPoint & IE)
- 手でやらなくても良い作業を簡単に自動化できる。
- 作業トリガーによるメール自動送信 (Excel -> PowerPoint + IE -> Outlook)
- 手でやらなくても良い作業を簡単に自動化できる。
- リリースマネジメントいらず
- (いいか悪いかは別として;-)
- 媒体がファイルであるため、修正や機能強化が容易にできる。
- 情報が多い
- Webに情報が豊富にあるため、コーディング時の参考にしやすい。
VBAのデメリット¶
- ソースコードがバイナリ内部に存在し、バージョン管理が難しい。(回避可能)
- ソースコードがバイナリ内部に存在し、ドキュメントからの参照引用が難しい。(回避可能)
- モジュール共有と保守の同期が難しい。(回避可能)
- 好きなエディタでソースコード編集ができない。(回避可能)
- 正規表現が利用できない (Windowsの場合は外部ライブラリにより利用可能)
- バージョンが変わると動かなくなることがある。
- 媒体がファイルであるため、複数存在する場合に、どのファイルが真正のファイルかわからなくなってしまう。更に更新が分岐しやすい。
- 媒体がファイルであるため、置き場に永続性がなく、失なわれやすい。
- テスト駆動開発に関する知見がほとんどみあたらない。