みなさん、おはようございます!タカハシ(@ntakahashi0505)です。
こちらの記事は、タカハシが音声メディアVoicyの「スキルアップラジオ」にて放送した内容から、ピックアップしてお届けします!
今回のテーマは、VBAの地位を上げたいと思った話です。
なお、以下で実際にお聴きいただくこともできます!
では、よろしくお願いいたします!
VBAは命の恩人
今日は、VBAの地位を上げたいと思った話をお送りしたいと思います。
VBA(Visual Basic for Applications)というのはMicrosoftが提供しているプログラム言語で、ExcelをはじめとするMicrosoftが提供するOfficeアプリケーションを操作することができるものです。
今日は、そんなVBAについての話です。
今から、8,9年前の僕がまだサラリーマンだったときの話なんですけれども、VBAは、僕自身をブラック労働から救ってくれた命の恩人と言ってもいいような存在だったんですね。
なんとかVBAを独学で学んで、チームの仕事を片っ端からシステム化して、本質的な業務に向き合える時間を増やしました。とても多かった残業を減らすという成果を上げてくれた武器となったのがVBAです。
そういった意味でいうと、VBAを学んだということは僕にとって誇りのようなものを持っていて、プログラミングを学んで活用して「良いこと」をしている仲間入りができてうれしい、そんな感覚を持っていたんです。
VBAの地位を低く感じている人がいる
しかし、あるとき、プログラミング関係のイベントに参加しました。自己紹介タイムで「どんな言語をやっているんですか」という話になったときに「VBAやっているんです」と挨拶すると、「ああ…VBA…ね…」みたいな反応だったんです。
おや?なんだこの反応、と思ったという記憶があります。
さらに、Twitterとかを眺めていると、VBAを良く思っていなかったり、場合によっては馬鹿にしたりしているのが、ちらほら見受けられたんですね。「VBAはプログラミング言語じゃないから」みたいなコメントもあったりします。
え?VBAだってプログラミング言語だし、Excel仕事なんかメチャクチャ自動化できて、すごい良い言語なんだよと思ったんです。
おそらく一部の方だけだと思うのですが、どうやらVBAの地位が低いと感じてしまっている人がいるぞ、ということに気づいたわけです。
VBAの歴史
なぜ、そんなことが起きているか一時期考えたんです。
VBAの言語仕様
たしかに、言語仕様としはイケてないところがなくはないんです。
例えばクラスモジュールに1つずつしかクラスが作れないとか、構文の省略があちこちでできてコードの書き筋が人によって揺れまくるなど、イライラするところも確かにあります。
ただし一方で、誰もが使っていると言っても過言ではないExcelを操作できるのは非常に大きな強みですし、シートをデータベースとして使用できるのも画期的、おかげでデータを目でみながら学習したり開発できます。ややこしい環境構築も不要です。
そうして考えてみると、そこまで劣っているようには思えないんですね。むしろ有効に使える言語なんじゃないかなと考えていました。
そんな風に考えていて、違うのは、歴史なんじゃないかと気付いたんです。
VBAのヒットの背景
VBAという言語はノンプログラマーにも使える言語として大ヒットしてきた背景があります。
ノンプログラマー向けだからということで動けばいいというニーズがどうしても前面に出てしまって、書籍も初心者向けのまずは動かすことを目的とした入門書が大量に出版されているわけです。
その先に、リーダブルな読みやすいコードを書くとか、部品化をして変更を容易にしたり、ドキュメントを整備する、といった保守性を高めるような話は、どうしても面倒だということで、後回しにされたりとか、もしくは避けられがちな事実があるかと。
かつ、ノンプログラマーなので非IT部門にいるわけです。そんな組織でプログラムを管理するという意識がどうしても組織自体に低いので、上長もそのコードに関しては預かりしらずの属人的な管理になります。
なので、こういった背景から、とりあえず動けばいいというような、コードが読みづらく、変更がしづらい属人化されたコードが量産されやすい、そんな歴史があったんじゃないかと思います。
VBAとノンプログラマー
書籍は売れればそれでいいんですが、それを使ってつくられたプログラムは基本的にずっと使われるし、運用されるわけです。
業務が変われば変更が必要ですし、作った人に人事異動や転職があったら引き継ぎも必要になります。
そのときに、初めて、どうするんだ?となります。
誰もメンテナンスができないことになります。
それで、例えば社内のプログラマーに声がかかり、そんな属人化したコードを「なんとかして」と見せるわけです。
その見たときに、メチャクチャ読みづらいし保守しづらいコードだったときのプログラマーの気持ちを考えると、確かに、そっ閉じしたくなる気持ちはわからないでもない。
結果的に、VBAに拒否反応を示すようになるというのがあるかもしれません。
でも、これってVBAという言語が悪いのではなくて、ノンプログラマーだったとしても、読みやすくて、変更しやすいコードで書こうね、チームで管理しようね、という文化が育ってこなかったというのが問題だと思うんですね。
読みやすいとか、変更しやすいコードで書く、チームで管理する、そういったノウハウは本職のプログラマーさんたちがたくさんの視点を持っていて、蓄積してきてくれているわけです。
その蓄積を、ノンプログラマーの世界に輸入して、文化として定着させるというのが重要なんじゃないかと考えました。そしてそれが、僕の大きな仕事のひとつになっています。
そんな想いもあって書いた書籍が2017年に出したデビュー作「Excel VBAを実務で使い倒す技術」という書籍になります。
読みやすいコードとか、変更しやすいコード、運用のしかた、チームでの管理、そういったことを初心者が終わったくらいのスキルがある人向けに書いていますので、よろしければお手にとってみてください。
最近でいうと、僕が運営しているコミュニティ、ノンプロ研でもリーダブルで、変更容易性の高いコードを書くというのは間違いなく浸透してきていると思います。
Twitterを見ていてもここ数年で良いコミュニティが育っているように思えて、あちこちで健全な会話がされていると感じていまして、すごくうれしいなと思っています。
このように真摯に良いVBAを書いていこうというみなさんが、より活躍できて、評価される社会が訪れるように、VBAの地位を上げていく活動を引き続き頑張りたいと思っています。
まとめ
ということで、今日はVoicy「スキルアップラジオ」の放送から「VBAの地位を上げたいと思った話 」をお届けしました。
タカハシのVoicyの放送はこちらからお聴きいただけます。
チャンネルのフォロー、コメント、SNSでのシェアなどなど、楽しみにお待ちしております。
では、また。