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

VBAの本当のところ

»

VABをDisりまくっていたのに、急にVBAを肯定するコラムを書いて、いったいどっちなんだと思われたかもしれません。実のところVBAはどうでもいいです。それよりもPythonが楽しいです。VBAで書こうと思えば書けるし、VBAを使っても使わなくてもExcelを自動化したりもできます。私の視点は、言語という手段ではなく、何をするかという課題にシフトしています。VBAに限らず、手段に固執していると本質を見失います。

VBAはIE11みたいなものです。旧式で機能的ではないのでサッサと滅びて欲しいです。時代に合った別の仕組みでリプレイスされれば、ユーザもエンジニアもハッピーになれます。ただ、現場(とくにユーザと近い部分)でのニーズが高いものを無碍に否定しても利益がないので、考えるのを止めています。私が何を考え、どういう意見だろうと関係なく、現場では、 利を求めるビジネスマン(VBAを活用したい人)と、理を求めるエンジニア(クソVBAで悶絶する人)の対立によく出くわします。いちいち良し悪しを考えるより、問題解決に集中する方がエンジニアとしては賢いです。

実は、こういう対立の解消に役立つ技法はあります。技法というよりも黒魔術に近いですが、「クソコードである前提でのリファクタリング」という、身に着けても何も楽しくない、むしろ苦痛になるようなリファクタリング方法を編み出しました。素人をよく観察すると行動に特定のパターンがあります。そのパターンを元に、素人がどうコーディングしていくかを逆プロセスで組み立てる手法です。精神的苦痛と引き換えに、クソVBAを効率的に捌けるようになります。エンジニアとしては、全く楽しくない仕事です。

ただ、こういうエンジニアが負担を一手に引き受ける方法はお勧めしません。こういうことをやってユーザの信頼を得たとしても、誰かの犠牲や自分の犠牲の上に成り立った信頼は心を蝕みます。双方が Win - Win になるための条件は、ユーザの良質な学びです。ユーザも良質の学びが得られると、色々なことが理解できるようになって問題解決が進みます。知見が増すことでエンジニアとの意思の疎通もできるようになり、エンジニアもハッピーになります。

良質な学びには優れた先生や良質の書籍が必要です。先日書いたコラムで二冊、本を紹介したのはそういう理由です。私は、この本の著者の 吉田拳さん のコンセプトに共感しています。普通のExcelの教室や研修では、操作法を覚えて「動いたー、わーい!」というその場の達成感で終わってしまいがちです。ただ、吉田拳さんの書籍は、問題解決を軸にExcelの機能やVBAでの解決方法を著書で書かれています。あくまで主軸が「問題解決」です。こういう考え方が浸透したら、きっとユーザとエンジニアが仲良くなれるのではないでしょうか。そいう理由で、吉田拳さんの著書を推しています。どういう方かご興味を持たれたら、ツイッターでフォロー( @sugoi_kaizen )してみるといいかもしれません。また、全国でセミナー等も開催しているようです。「問題解決」が主軸なので、VBAやExcelの熟達者でも参加する価値があると思います。

問題は自分がどうするかだけではありません。よいものを広めることでも解決ができるのではないかと考えています。

Comment(2)

コメント

昔VBAを利用したことがある開発者

VBAはインターフェースだってありますしポリモーフィズムでダックタイピングが可能です
つまりデザインパターンの適用が可能でOOPでぎす
SOLID原則を適用し高凝集で低結合なモジュール群による依存関係の制御されたアーキテクチャを構築可能ですし、単体テストで保護されたシステムにすることも可能です
つまりVBA自体に罪はないんですよ!
って昔VBAを使った時に思いましたけど、せっかく構築したシステムもまともなメンテナーがいなくてあっという間にレガシーシステムになったからやっぱりVBAは滅んた方がいいのかもしれませんね…諸行無常

Horus

> 昔VBAを利用したことがある開発者 さん
確かに、理論上はいろいろできるかと思います。ただ、そこまでやるのならPythonのモジュールを使用して直接 xlsx を編集する方が早いです。もう、「〇〇ができるから」で技術を選ぶ時代ではありません。何をどう実現したいかで技術を選ぶ時代です。


VBAで書いたものにしろ、何でかいたものにしても、定期的に更新はされるべきだと考えています。その経過で、別の言語に移行というのもアリです。コラムで書いた話題はVBAですが、「VBAでなくても」な話です。

コメントを投稿する