VBAは自分にとって身近なプログラミング言語の一つです。
枯れた技術のような感はありますが、いまだ、仕事として需要があるのが驚きです。自分が大学の時に使っていたものなので、もう、十何年も経っているからです。
最近、久しぶりに触ってみて感想を述べてみたいと思います。
よい点
エクセルは仕事で使われることの多いソフト。プログラムを組むのに、いちいち会社に許可を取らなくても、エクセルはほぼ全てのパソコンに入っているので、すぐに始められます。
「エクセルに入力する日常業務を効率化したい」と上司に言えば、悪い顔はしないでしょう。初心者でもマクロの記録から、探りながら組めるので、敷居は低いです。
また、VBAはGUIを作るのが簡単です。「マウスで貼り付けて調整する」ので、作成する際の操作性が良いです。
悪い点
どうしてもpythonと比べてしまうのですが、いちいち変数を宣言しないと動かないのは面倒としか言いようがない。
例えば変数testを使う場合、pythonだといきなり「test=1」とか入力できるのに対し、vbaだと「dim test as integer」と宣言しておいて、「test=1」と入れなければいけない。他の言語も同様です。例えばjavascriptだと「var」でしたっけ。
初めてpythonに触れた際、感動したものです。「宣言いらないんだ!」と。
つい、宣言を忘れていて実行するたび、「宣言してません」とエラーメッセージが出る。pythonで慣れていると、どうしてもイライラすること間違いなし。
赤い文字などに変更され、宣言されてませんよ、と指摘してくれるならいいものの、実行するまでわからない。testという変数がtetになっていても、まるで知らせてくれない。
vscode上のpythonだとこんな感じ。ちゃんと「未定義です」ってすぐに知らせてくれる。
言語というより、開発環境の問題ですが、環境ってかなり大事なんですね……。なんというか、プログラミングするのにストレスがかかっている感がありました。
結論として、簡単なGUIを作るなら、VBAのほうがいいのかなあと。
wxPythonでGUI作成はちょっと面倒だったので。wxformbuilderっていうエディターを使っても、思い通りにいかないのでイライラしました。
やはり、VBAのGUI作成の操作性はピカイチ。その操作性とpythonが加わったらいいのに……と思いました。