言語の歴史は人類の歴史。そして人類はコンピュータを言語で動かすようになった。

プログラマになりたいならVBAは捨てよう

»

誤解の無いように始めに言っておくと、VBAは用途さえ間違えなければ便利なツールです。VBAを覚えることで、業務の自動化を行うこともできます。また、Excelの機能にないような処理を行ったりもできます。しかし、プロとしてITを仕事にしたいと思うのであれば、できるだけ早くVBAを捨てて、別の言語を勉強することをお勧めします。

VBAは古いです。機能も言語の仕様も貧弱です。それでいて便利に使えるのは、VBAが優れているのでは無く、ExcelやAccessが優れているのです。せいぜいがExcelの処理できる範囲でのプログラムしか書けません。どんなにVBAを書けたとしても、単にExcelができる人でしかありません。Excelを無理くり動かして機能を実現したとして、苦労と成果が釣り合いません。それをやるエネルギーを、他の言語の習得に向けた方が納得のいく結果が出るはずです。

例えば、Pythonに熟達したエンジニアとRubyに熟達したエンジニアがいたとします。同じくらいのレベルであれば、だいたい似たようなことができます。しかし、同じくらいのレベルでVBAを書けたとしても、VBAでPythonやRubyのような事はできません。VBAには、他の言語のような人の書いたモジュールを活用できるような仕組が存在しません。誰かの書いたコードの力を借りることができない言語です。どんなに使いこなしたとしても、MS Officeの幅を出ることはありません。

もし、VBAを書いている人がプロフェッショナルとしてプログラミングをしたいと思うなら、どこかのタイミングでVBAを捨てることになります。VBAを書いて事務仕事で活躍をすることはできても、プログラマとしての活躍は難しいです。VBAの書き方も古い技術に立脚しています。いくら頑張っても、古いコードの書き方しか身に付きません。基礎を学ぶには良いですが、プログラマを目指すなら早い段階で見切りをつけて、別の言語を学習しましょう。

「せっかく勉強したスキルを捨てるのはもったいない」という意見もあるかもしれません。しかし、ITの世界では技術が陳腐化することは普通です。VBAでなくても、古くなった技術は容赦なく捨てることになります。そうしないと、新しい技術を覚えることができません。VBAに固執した分だけ時代に取り残されていきます。VBAは用途が限定された言語なので、仕事にはなりにくいです。プログラマとして活躍したいなら、他の言語を勉強しておきましょう。

Comment(8)

コメント

仲澤@失業者

おまたせしました。弊社RPAツール「社畜くん」の機能拡張にVBA実装機能が追加になりました。
要件を入力するだけで手軽にVBAをコードしてくれます。
仕様の朝令暮改も簡単。スピーディーに御社の要望を実現します。


別売の音声入力システム「言うだけ君」マイクを併用することで音声での要件入力も可能。
ぜひご検討ください。


・・・と言うような広告を妄想しました。

ななし

過去にVBAにお金を騙しとられたのか⁉ というくらいアンチな内容でした。

ゆう

まったくその通りだと思います。
以前いた職場がexcel vbaで業務システムや製造系の生産計画や製品の完成形上システムを作ってしまってて、開発メンテナンスに他の言語の倍の時間がかかってました。
officeのバグやパッチで、動いていたものが動かなくなることがあったり、、
上司が新しい技術の劣等感があり、excel vbaなら分かるからと強制された結果でしたが。
その職場で働いた期間はSEとしての成長が全くなかったです、、

くらぽん

VBAだけに固執するならば、たしかに成長はないですよね
わたしは、元々エンジニアの仕事でもなんでもなくて、庶務を楽にしたい気持ちからVBAに手を染めました。
半年間くらい、大した成果がなくて、相談相手もいないなかで、
Excelを動かす現実の課題解決に向けて、少しずつ学んだ蓄積のおかげで、
いまはなにも悩まなくなりました。
この半年間で学んだことは、他の言語においても共通することもわかりました
言語を利用して課題解決することをマスターしたので、
言語が変わっても、言語の特徴をつかめばいいことがわかりました
なので、一般人の入り口として、VBAはありだとおもいますが、
たしかに、VBAいっぽんはむりなので、
ほかの言語を使う環境があれば、
VBAはいらないかとおもいます

あきれた

新しい言語を覚えるためには古い言語を捨てる必要があるのでしょうか。


適材適所に言語を選択できてこそのエンジニアではないでしょうか。

Horus

> あきれた さん
私は捨てる必要があると思います。必要になればまた覚えればいいでだけです。覚えたスキルに執着すると、どうしても発想が固くなります。


それぞれの自由なので、価値や必要があると思うならVBAをやり続ければいいと思います。

匿名

プログラマーさんや開発部門の方々とは少し違うのかもしれませんが、SIer など出入りの多い職場では誰もが読みやすい、可読性の高さというのを普段、個人的に意識しています。引き継ぐ先のスキルセットや利用環境が不明という点で、とりあえずexcel 位はあるだろう/ 読めるだろう、とVBA を使うこともまだまだあったりします。


が、おっしゃるとおり、古くて不便なのも確かです。アップデートしたがらない人達の多い職種に身を置いて周りにあわせてるのも良くないな、と改めて気づかされます。

Horus

> 匿名 さん
このコラムですが、あくまで学習という観点から書いています。実用という観点から見ると、実用できる場面はあります。


そもそも、SIerも人の出入りが激しいなら多くのノウハウを吸収するチャンスがあると思うのですが。そんな話はまた別のコラムで。

コメントを投稿する