私が、特にコンピューターの専門家以外の人によくお薦めしているプログラミング言語VBAについて、あらためて易しく(そして出来れば優しく)お話する。
VBAは、ビジュアル・ベーシック・フォー・アプリケーションの略で、Excel(エクセル。表計算ソフト)、Access(アクセス。データベースソフト)等の、マイクロソフト・オフィス(Microsoft Office)製品である業務用ソフトウェアに組み込まれたプログラミング言語だ。
Word(ワード。ワープロソフト)やPowerPoint(パワーポイント。プレゼンテーション作成ソフト)にも組み込まれているが、VBAが最も使われるのはExcel、そして、Accessである。というのは、VBAは、データ処理に強いからだ。

VBAは、中身は、マイクロソフトの代表的なプログラミング言語の1つであるVisual Basic(ビジュアル・ベーシック。以降「VB」と略記)なのであるが、VB自体は、2002年以降は、VB.net(ブイビー・ドットネット)と呼ばれる、新型言語になり、2008年以降は、VB.netではなく、VB2008とか、VB2017といったように、発売開始年が付くようになった。
VBAは、2002年以前の、VB6.0という、旧式のVBとほぼ同じである。
ただ、実を言うと、VBは、VB6.0で十分であり、その頃は、最も使われたプログラミング言語であったが、VB.net以降は人気がなくなっている。
そもそも、VB.net以降のVBは、Java(ジャバ)や、Javaに対抗してマイクロソフトが作ったC#(シー・シャープ)と肩を並べる新しいプログラミング言語になったと言えば聞こえは良いが、それなら別にVBでなくても良いので、ユーザーがC#、あるいは、Java に流れたのだろう。

VBAは古いとは言え、実務で使うのに不足なことは全くなく、むしろ、VBAの全体を使いこなしている人なんかいない。
VBAの最大の特徴は、ExcelやAccessの機能をプログラミングで自在に使えることで、その有益さは計り知れない。
逆に言えば、プログラミングの際、ExcelやAccessが機能として持っている部分はプログラミングしなくても、その機能が簡単に使えるのである。
もっと詳しく言うと、実務的にデータ処理をする機能は、通常のものはExcelに、高度なものであればAccessに全て備わっているし、最もプログラミングに時間がかかるインターフェース(操作部分)も、これらのソフト自体に高度に備わっているのであり、そんなデータ処理、インターフェース機能を「呼び出す」だけでプログラミング出来る便利さは、他のプログラミング言語では全く望めない。
もちろん、VB20XXやC#、あるいは、Java等は、VisualStudioやEclipseという、開発環境ソフトで使うことが多く、それらにはインターフェース作成機能はやはり用意されているのだが、VBAでは、操作性で格段にユーザーフレンドリーなExcelやAccessのインターフェースが使えるのだから、比較にならない。
それを考えると、私のようなプロでも、ExcelやAccessで済むなら、これで作る方が効率が高いのである。

VBAの・・・というよりは、これがExcelやAccessに組み込まれたものであるということから来る欠点は、まず、Webやスマートフォンアプリの開発が出来ないこと、そして、多人数での共同開発が出来ないことだ。
これは、超大規模プロジェクトでは、そもそも、最初から使えないことを意味する。
しかし、実務的なデータ処理をWebやスマートフォンでやる必要は全くなく、シンプルなWindowsアプリでやるのが圧倒的に効率的だ。
超大規模システムは、それはそれで必要なところで使えば良いのであり、日々のフレキシブルな処理はExcelやAccessでやった方が効率的だ。
そして、大規模システムと言ったところで、よほどのものでない限り、データベースさえSQL Serverやオラクル、あるいは、MySQLみたいなものを使えば、ほとんどの場合、Excelや、特に、Accessで十分である。
まあ、開発会社としては、ExcelやAccessでは高額受注出来ないので、あまりやりたくないという事情がある。

ExcelやAccessの「Webで使えない」「多人数で開発出来ない」という欠点を解消したと主張するものとして、ジャストシステムのUnitBase(ユニットベース)やサイボウズのkintone(キントーン)があり、単純なパターンに嵌(はま)ったことであれば、使えないこともないと思うが、何でも自由自在に簡単にやれるExcelやAccessの使い勝手の良さとは別の道を行くものだと思う。
費用もかかるし導入もややこしい。
そもそも、UnitBaseとkintoneのどちらを選べば良いか分からないし、30年揺るぎなく続くExcelやAccessのような安定性はないと思う(いつなくなるか分からない)。
言い方は悪いが、企業の担当者や決裁者が言いくるめられてUnitBaseやkintoneを導入することも多いのだと思う。
あくまで私の考え方かもしれないが、業務で本当にこれらを導入することのメリットはあまりないと思う。
それで言えば、G Suite(Google Apps for Businessの新型)で、Apps Scriptというプログラミング言語を使えば、Excel+VBAと同じようなことが出来る。
しかし、Excel+VBAの使い易さとは比較にならないし、そもそも、G SuiteはWebのものであるが、いかに高速回線が普及したとはいえ、日常の仕事をネットを介してやるのは、まだまだシンドいのが事実である。
私は、少なくとも、後10年は、ExcelやAccessを使うのではないかと思う。そして、WebではG Suiteを使おうと思う。