VBAはクソだが最強の言語だ
・・・と、いきなり煽るようなタイトル。
何をもって最強かという前提ですが、「プログラミング言語の中でVBA人口が最も多い(だろう)」という利用者数において最強だと言いたいのです。
一方でこんな記事を見つけました。
これによると、もっとも人口の多いのはJavaScriptだそうです。で、Java, PHPと続きます。Visual Basicは19位にあるもののVBAは見当たりません。それともVisual Basicの中に含まれているのでしょうか。
いずれにしても、僕の主張とは大きくかけ離れていますね。
しかし、1つ言いたいのは、この調査は「プロのプログラマーのみ」を対象に調査してるんじゃないかなってことです。世の中には職業プログラマーだけじゃなく、IT以外のエンジニアもいるし、営業マンだって、経理マンだって、現場作業者だっています。
人数割合で行けば、
プログラマー << それ以外の人
なのです。
それ以外の人に聞かないのは調査として片手落ちなんじゃないでしょうか。
え?一般のサラリーマンに聞いても仕方ないって?
いやいや、そうじゃありません。非IT人材だって業務効率を上げるために普通にプログラミングしているんですよ。そう、Excel/VBAでね。
[ad#top-1]
一般ビジネスマンのIT環境
- Windowsである。(現時点ではWindows7が最多)
- サーバーなんて触らせてもらえない。
- パソコンには勝手にソフトをインストールしてはいけない。インストールしたい場合はIT部門の許可を得る。当然、業務に必要であることが前提。
- 各自に与えられたパソコンはIT本部から常に監視されている。
- MicroSoft Officeはもちろんデフォルト。(現時点では2010が最多)
この環境下で手が出せるプログラミング言語は、.NETかVBAしかありません。で、非IT人材はかなりの確率で.NETのコンパイラの存在を知りません。
よって、僕たち非ITサラリーマンはVBA一択なのです。
VBAの利用状況
WordにもOutlookにもVBAは存在していますが、一般人にとってのVBAとはExcel/VBAのことです。
Excelを使う機会が非常に多いので、ルーチン業務は各担当者が勝手にVBAで自動化していきます。非ITのエンジニアは言うに及ばず、経理、購買、営業だってVBAを使っています。Excelには「マクロの記録」機能があるので便利です。教えてちゃんになる必要もないですから。
僕たちだって、JavaだってPHPだって使いたいんです。でも限られた環境下ではVBA一択なんですよね。
かくして、世界のVBA人口は他のそれをはるかに凌駕していたのだった・・・。
しかしVBAはクソだ
クソです。ただその一言に尽きます。
- 変数の大文字小文字が区別されない。オブジェクト名(の小文字)が使えず変数名にバリエーションがない。
- GoToの欲望に勝てない。
- forループにbreak(Exit For)はあるけど、continueがない。ここでGoTo登場。
- ↓testを実行すると結果が3になる。※まさか参照型だってことを知らずにバグ投入。
Sub test() i = 1 Call test2(i) MsgBox (i) End Sub Sub test2(i) i = 3 End Sub
MicroSoft陰謀説
僕たちの貧弱なIT環境はIT本部の意向なんですが、実はMicroSoftの陰謀説があります。(この説を唱えているのは僕だけだけど)
企業には過去にわたってOffice文書の膨大な資産があるのですが、ちょいちょいマクロが組まれているので、他の安価なOffice製品に移行できないというジレンマがあるのです。
LibreOfficeを代表にMicroSoft Officeの互換性をものすごくがんばってくれているので移行が容易だと思われそうですが、残念ながら、VBAが楔となって移行できないんです。さすがにマクロまで互換性ないですからね。
正直、Excel/VBAがなければ、多くの企業で別のOfficeに移行したり、あるいはOSをLinuxにするとかで、コストを下げることを考えていたんじゃないでしょうか。でも、それをVBAが阻んでいるんです。
ある意味、MicroSoftの戦略勝ちと言っても過言ではありません。(なので陰謀説)
さながら、給食の主食をパンにして子供たちが将来パンを嗜好するよう企んだかつてのGHQのようです。※この給食の話は都市伝説だそうです。どうやら減反政策の影響みたい。
[ad#ad-1]
スポンサーリンク