スポンサーリンク



2019年01月03日

プログラミング言語紹介(1):VBA

 今回からシリーズで、プログラミング言語を1つずつ取り上げ簡単に紹介していきたいと思います。似たようなことは多くの人がされているのですが、それを読んでいて「この人、ほとんどこの言語使ったことないのにネットで見た知識だけで書いてるなあ」と思うことが多く、きちんとした情報を伝えようと思ったのが動機です。

 ですので、本シリーズでは勉三が実際にある程度扱ったことのある言語についてしか書きません。ある程度というのも線引きが難しいですが、Hello world 程度ではなく、きちんと実務や実用に使えるようなプログラムを書くのに使ったというぐらいの意味合いで考えておいて頂ければと思います。

 まずは記念すべき第一回は VBA からです。

VBAは立派なプログラミング言語です

 VBA(Visual Basic for Application)は、Microsoft社謹製のプログラミング言語で、Microsoft Office の各製品をプログラマティックに操作したい時に使われる言語です。とりわけ、同社の Excel 上で使われることが多く、Excel VBA などとも言われたりします。本記事でも専ら Excel での使用について念頭に置いて書くことにします。

 VBA は Excel というアプリケーションの操作(例えばセルの文字色を変えるだとか)を実行できるため、マクロ言語(あるいはマクロ)とも呼ばれることがあります。これは通常のプログラミング言語での1命令よりも、より大きな粒度(マクロ)での命令を実行するために作られた言語という意味あいがあるようです。

 このような事情から、VBAは「初心者向け」「あくまでマクロ言語でプログラミング言語ではない」「簡易の言語」と言われることがありますし、そう思っている人が多いようです。勉三はC/C++、Javaなど一通りやってから、VBAをやりました。その時は私もネットで聞いていた噂からそのような先入観を持っていたのですが、実際にやってみてその印象は吹っ飛びました。VBAは立派なプログラミング言語です。誰ですか?初心者向けとかいったのは?

 ただ、実務での必要性に迫られて、きちんとしたプログラミングの流儀を知らずに、ネットや本のコピペだけでVBAを動かしている人もそれなりにいるので、確かにユーザのスキル的な意味で言えば平均としては低いのかもしれません。それは誰でも使えるという意味で悪い事ではありませんし、VBAが機能の限られたプログラミング言語であるということでもありません。あくまで簡単に使えるがゆえに、結果として初心者が多いということです。他の言語で基礎ができている人が使えば、速度などを除けば他の言語とそん色ないプログラムが書けます。

VBAをきちんとプログラミング言語として教えているサイトや本が少ない

 これは勉三がVBAを勉強する時にぶつかった壁なのですが、VBAはれっきとしたプログラミング言語であるにも関わらず、VBAをきちんとプログラミング言語として解説しているサイトや本が殆どないのです。

 勉三のようなC/C++からプログラムを始めた者にとっては、プログラミング言語を学ぶときは、まずどういう変数型があって、変数を宣言するにはどうしたらいいか、関数やクラスを定義するにはどうしたらいいか、配列やコレクションなどの複合的なデータ構造としてはどういったものがあるか、そういったことをまず知りたいのです。逆にそこを伏せて解説されても分かりにくくて仕方がない。裏側ではどういう型の変数になっていて、ここは値渡しなのか、参照渡しなのか、そういうことをきちんと教えてくれないとすごく気持ちが悪い。

 ですが、VBAについてこういった切り口で解説しているサイトは殆どありません。セルの書式を変えるためにはこうすればいいとか、そういうテクニックが辞書のように羅列されているような解説が殆ど。VBAから始めた人がプログラミングの基礎を学ばないというのは、こういった教材面の問題もあるのかもしれません。

VBAの最大のアドバンテージは環境構築が不要なこと

 と、ここまでVBAを褒めるようなことを書いてきましたが、勉三はVBAは嫌いです。変数の宣言も Dim x As Integer とか気持ち悪いし、プロシージャや関数の呼び出し時の Call やカッコの有無の使い分けなども非常にイライラする。開発環境もExcelの進化から取り残されて化石化してしまっています。パワフルかつ完全なプログラミング言語であることは認めながらも、できることなら使いたくはない言語です。

 ただし、VBAの持つ最強のアドバンテージは「環境構築が不要なこと」です。おそらく、殆どのみなさんの職場のパソコンには Microsoft Office があらかじめインストールされているはず。職場のパソコンはだいたいセキュリティの設定が厳しく、追加でソフトウェアをインストールできなかったり、できても申請が必要だったりするかと思います。ですが、Excel さえインストールされていれば、即 VBA が使える。これは大きい事です。

 例えば、Windows で C/C++ あるいは C# なんか使おうと思うと、VisualStudio をインストールしたいところですが、無料で使える Community 版であってもインストールが必要になります。上司がプログラミングなどに全く理解がないと、なぜインストールが必要でそれで何ができるのか説明するだけでも一苦労です。

 そんな時は、まず VBA で簡単なプログラムを作って、手動でやっていたことを高速でできることを上司に見せてあげましょう。それから「VisualStudio というソフトがあれば、もっと高速で高機能なプログラムが組めるようになる。有料版は10万円以上と高いが、無料版がある」と説明すれば、「うむ、インストールしていいぞ」と言ってもらいやすくなるでしょう。

スポンサーリンク




posted by 勉三 at 19:01 | Comment(0) | TrackBack(0) | IT
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/185311276
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック