VBAの強さ
毎年人気のプログラミング言語ランキングというのが集計されている。
最近は機械学習にも親和性が高いPythonが人気のようだ。
その一方でいまだに実際の現場で存在感を放っているレガシー言語がVBAである。正直面白味はあまりない。開発環境も使いづらい。
だが手軽さ、柔軟さという意味ではなかなか並ぶ言語はないのではと思う。MS Officeとの連携、Excelを使ったUIが簡単に実現できるというのも大きい。
開発環境もExcelさえあれば他には不要。サンプルコードもググればたくさん出てくる。
ということで、私が実際に使ったり見たりした代表的活用方法を挙げてみる。
その1:プロジェクトの課題管理ツール
最近はbacklogやJiraといったクラウドツールを使うことも多いとは思うが、ライセンス不要、好き勝手カスタマイズできるという点ではやはりVBA最強。
大きなプロジェクトではデータはAccessに持って、ExcelをUIとして使う方式がよく使われていた。
それなりの規模のSIerではこういったツールのテンプレートは必ず一つや二つ存在するのではないか。
その2:データ移行
これはExcelのVBAというよりは、AccessのクエリやVBAを使うことが多いかも知れない。
旧システムから新システムへのデータ移行は必ずデータモデルの変換、コードの変換が発生する。
大規模なシステムであれば、データ移行だけで何十人月ものサブシステムのような使い捨てのプログラムが組まれることになる。
そんな時に活躍するのがVBAだ。
その3:基幹システムからのCSV取込&分析レポーティング
基幹システムそのものにレポート機能があったり、BIツールとの連携を開発する工期・予算があればそれも良いだろう。
だが往々にしてその余裕がなく、VBAで簡易ツール開発をすることになる。
これもAccessと組み合わせることが多い。
私のやった例だと、CSVのローデータを加工するのはAccessで実施、レポートはExcelにVBAで書き出しというのがある。
人間とのインターフェースになる部分はExcelの方が好まれるだろう。
流行りのRPAはVBA2.0
いきなり適当なこと言ってすみません笑
真面目な話、技術要素的には全然違うんだけれども、人の作業を楽にするという観点では目指すところは一緒なのかなと。
RPAの登場で、それがよりエンドユーザに身近なものになったのだと理解している。
その走りという意味で、VBAを知っていれば「RPAのここは、VBAで言うところのあれ」のような思考ができて有利だし、なんだかんだでUiPathからVBAの処理を呼べたりするということはRPAよりVBAでやった方が便利な部分があるということ。VBAを馬鹿にしちゃいかんのです。
VBAを使えるコンサル、PMって気が利いてるよね!?
上流担当だけど、ちょこっと自分でVBAもできるというのがスキルの掛け合わせとしては強いと思うんです。
・ちょっとした状況分析ツールを即興で作る。
・バラバラに管理されているブックをマージして一纏めにする。
・別のプロジェクトで使われていたツールを今のプロジェクト向けにちょちょいとカスタマイズしてその日から使う
そもそもツールで何ができるのか、どういう仕組みなのかを分かっているだけでもマネジメントのやり方が変わってくるだろう。
まあ自分がVBA割と得意なので半分は自己アピールなんですが笑
ということでこれを読んでいるVBAプログラマの皆さん、時代遅れなんて悲観することはないです。長く使えるという点ではVBAという入り口は悪くないです。もちろん他の言語にも挑戦して欲しいですが、まずはVBAを自分のものにして欲しいと思います。