これは、私が競艇ソフトに取り組み始めた12年前から、ずっと変わらない考えです。
少し変な話に聞こえるかもしれませんが、私はいまだに「VBAを書ける」とは思っていません。
もちろん、記事の表現として「VBAを書く」と言うことはあります。
しかし、私の実感に近い言い方をするなら、VBAは「書く」ものではなく「入れる」ものです。
- 1.必要な処理がある。
- 2.それに合うVBAをWEBから探す。
- 3.AIに相談する、もしくは上級者に書いてもらう。
- 4.自分のExcelに入れる。
- 5.動かしてみる。
- 6.うまくいかなければ直す。
私の立ち位置は、ずっとこれです。(この立ち位置に羞恥心なし)
「VBAを書く」という言葉が入り口を狭くしている
他人の表現を細かく指摘したいわけではありませんが、ただ、私は以前からずっと思っています。
「VBAを書く」という言葉が、マクロへの入り口を必要以上に狭くしているのではないか、と。
「VBAを書けるようにならなければ、マクロは使えない」
「文法を覚えなければ、Excelを自動化できない」
「プログラミングが分からない人には無理」
そう思ってしまうと、多くの人はそこで足が止まります。
しかし、本当にそうでしょうか。
VBAはたしかにプログラミング言語です。
でも、言語である以上、私たちが普段使っている日本語と同じように考えてもよい部分があります。
日本語も最初から書けたわけではない
私たちは、最初から日本語を完璧に使えたわけではありません。(今でも怪しい)
毎日聞いて、毎日話して、何度も間違えて、少しずつ自然に身につけてきました。
学校で国語の勉強もしました。
文法も習いました。
漢字も習いました。
しかし、それらが日常会話にどれほど直接役に立っているかと言われると、少し疑問が残るところではないでしょうか?
もちろん、勉強が無駄だったという話ではありません。
ただ、私たちは文法を完全に説明できなくても、普通に日本語を使っています。
「これは五段活用の未然形で……」
などと考えながら、家族と会話している人はあまりいないはずです。
それでも、日本語は使えます。
VBAも、それに近い感覚でよいと思っています。
読めるけれど書けない漢字はたくさんある
たとえば、漢字です。
読むことはできる。
意味も分かる。
文章の中に出てきても困らない。
でも、自分で書けと言われると書けない。
そんな漢字は、誰にでもたくさんあるはずです。
では、その人は日本語ができないのでしょうか。
そんなことはありません。
読める。
意味が分かる。
必要な場面で使える。
それで日常生活には十分役立っています。
VBAも同じです。
全部をゼロから書けなくてもよいのです。
見たときに、だいたい何をしているか分かる。
どの部分を変えればよいか分かる。
自分のExcelに入れて、動かして、少しずつ直せる。
まずは、「これでいいのだ」。
大事なのは「書けること」ではなく「使えること」
マクロを使う目的は、VBAを書くことではありません。
Excel作業を楽にすることです。
同じ作業を何度も繰り返さないことです。
ミスを減らすことです。
大量のデータを扱えるようにすることです。
自分の作りたい仕組みに近づけることです。
つまり、大事なのは「VBAを書けること」ではなく、「VBAを使って目的を達成できること」です。
ここを間違えると、手段と目的が逆になります。
競艇ソフトを作りたいのに、いつの間にかVBAの文法試験を受けているような気分になる。
これは、かなりつらいです。
そして、だいたい途中で嫌になります。
最初は「入れる」だけでいい
最初は、VBAを自分で書こうとしなくてもよいと思います。
まずは、必要なコードを入れてみる。
動かしてみる。
どこが変わるのかを見る。
エラーが出たら、そのエラーを調べる。
少しだけ修正して、また動かす。
この繰り返しで十分です。
何度も見ているうちに、自然と分かってくる部分があります。
「ああ、この行はシートを指定しているんだな」
「この部分は最終行を探しているんだな」
「ここを変えれば保存先が変わるんだな」
最初は意味不明だったVBAも、何度も触れているうちに少しずつ見えてきます。
これは、漢字や言葉を覚える過程と似ています。
全部を理屈で覚える必要はありません。
繰り返すうちに、体に入ってくるものがあります。
AI時代は、なおさら「全部書ける必要」はない
今は、AIに相談しながらVBAを作ることもできます。
やりたいことを説明すれば、AIがコードを提案してくれます。
エラーが出れば、そのエラー内容を貼って相談することもできます。
既存のVBAを、自分のブックに合わせて修正してもらうこともできます。
もちろん、AIが出したコードをそのまま信じ切るのは危険です。
動作確認は必要です。
検証も必要です。
しかし、それでも昔に比べれば、VBAへの入り口はかなり広くなりました。
だからこそ、最初から「VBAを書けないから無理」と考える必要はありません。
書けなくても、使うことはできます。
読めなくても、少しずつ読めるようになります。
分からなくても、動かしながら覚えることができます。
VBAは目的地へ向かうための道具
私にとって、VBAは作品そのものではありません。
競艇ソフトを作るための道具です。
データを集めるための道具です。
Excelを自分用に動かすための道具です。
ですから、最初からVBA職人を目指す必要はありません。
もちろん、本格的に勉強したい方は勉強すればよいと思います。
文法を理解し、きれいなコードを書けるようになることは、素晴らしいことです。
ただ、それが入口でなければならないとは思いません。
入口はもっと雑でいい。
もっと気楽でいい。
まずは入れて、動かして、失敗して、直せばいい。
それでも、前には進めます。
「書けない」から始めても大丈夫
私は今でも、VBAを書ける人間だとは思っていません。
それでも、競艇ソフト作りを続けてきました。
データを集め、Excelを動かし、必要な仕組みを少しずつ作ってきました。
だからこそ、これからマクロに触れる方に伝えたいのです。
VBAは、書けなくても大丈夫です。
まずは入れてみる。
動かしてみる。
分からないところを少しずつ直してみる。
それで十分です。
「書けない。だからできない」
そう考える必要はありません。
読めるけれど書けない漢字があっても、日本語は使えます。
知らない言葉が山ほどあっても、私たちは普通に会話しています。
VBAも、それくらいの距離感で始めてよいのではないでしょうか。
大事なのは、きれいに書けることではありません。
自分のやりたいことに、少しずつ近づけることです。

