.. _lets-vba: ================================================================ Let's VBA ================================================================ .. contents:: :local: ---------------------------------------------------------------- なぜVBAか? ---------------------------------------------------------------- 1. Windows環境であれば、たいていExcel入っている。 (一般の人が使える唯一?のインタプリタ) 2. Mac でも動く。 (Office for Mac 2010) 3. 業務系の職場ではユーザが多い。 引き継ぎ相手がいる可能性が高くなる。 ---------------------------------------------------------------- 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の場合は外部ライブラリにより利用可能) - バージョンが変わると動かなくなることがある。 - 媒体がファイルであるため、複数存在する場合に、どのファイルが真正のファイルかわからなくなってしまう。更に更新が分岐しやすい。 - 媒体がファイルであるため、置き場に永続性がなく、失なわれやすい。 - テスト駆動開発に関する知見がほとんどみあたらない。 ---------------------------------------------------------------- Let's enjoy VBA ---------------------------------------------------------------- .. image:: ./images/20120831-vba.026.png :width: 640