VBAとは、ExcelをはじめOffice製品で使えるプログラミング言語です。特別な開発環境がいらないので、初心者やノンプログラマーにもやさしいとされ、学習者も多い言語です。この夏、タカハシノリアキさんが、ChatGPTとExcel VBAの初心者に向けた新著「ChatGPTで身につけるExcel VBA」を上梓しました。その背景や、タカハシさんならではの構成ができあがった過程について伺いました。
ChatGPTは、ノンプログラマーのよき相棒になれる
ーー企画の経緯について教えてください。
2023年に「デジタルリスキリング入門」を書いたので、今年は少しゆっくりしたいなと思っていたんです(笑)。そんな年初に、マイナビ出版さんからご連絡をいただいて。「ChatGPTを使ってプログラミングを学ぶ本を書きませんか?」とのご提案でした。
僕が以前書いた「パーフェクトExcel VBA」(技術評論社、2019年)は、VBAの機能をほぼ網羅した「これさえあればOK」的な内容で。その著者がChatGPTで学ぶVBA本を書いたらどうなるのか、という「問い」をいただいたんです。
編集者さんと打ち合わせを重ねて、つくるならどんな本がいいか、どんな構成がわかりやすいかと考えを巡らせているうちにどんどんアイデアが出てきて。気づいたらワクワク、やる気満々になっていました(笑)。
ーーいろんなプログラミング言語がある中で、Excel VBAの特徴はどんなところにありますか?
VBAは少しやっかいな言語です。たとえば、コードを少し省略して書いても、VBAが勝手に調整してくれるので、書き手がコードの構造を理解していなくても動いちゃうということがよくあります。それ自体は使い勝手がいいともいえますが、それでは一度エラーが出たら対応できません。逆に厳密なルールがある言語の方が、初心者には理解しやすいんですよね。
また、VBAは複雑で特殊な言語でもあります。同じ動きをさせるにも複数の書き方があるので、初心者からすれば何がベストなのかわかりにくいんです。
加えて、ノンプログラマーはどうしても孤独で、基礎を教えてくれる人やわからないことを聞ける相手がいません。僕が主宰している「ノンプログラマーのためのスキルアップ研究会(ノンプロ研)」みたいなコミュニティがあればいいですが、心理的ハードルが高くて飛び込めない人もいるでしょう。
そんなときにいつでも何でも相談できる相手として、ChatGPTを味方につけられたら強いんじゃないかと思いました。ChatGPTに質問するときは指示や条件を整理しないといけないので、それ自体がアウトプットの機会になるし、もしエラーが出ればその原因がどこにあるのか、何回でも質問できます。対話できるのはChatGPTが持っているいちばんの強みだし、強制的にアウトプットするのも、学習効果を高めることになります。
こういう経緯で、今回「VBAもChatGPTも詳しく知らない、完全に初心者のノンプログラマーに向けて本を書こう」と決意しました。ある程度VBAを使える方が、ChatGPTの使い方を学び、基礎のおさらいをする用に使うこともできると思います。
ChatGPTを使い込まないと読み進められない構成に
ーー少し特殊で複雑なVBAと、初心者の味方になりそうなChatGPT。両者を生かすために、どんな工夫をされましたか?
「ChatGPTで身につけるExcel VBA」では、各パートで「サンプルコードはこれです。まず書いてみて、実行して、解説をChatGPTに聞いてみましょう」というふうに、読者がどんどんコードを書き、ChatGPTを使います。何回もChatGPTに問いかけながら、やりとりを繰り返さないと進まない構成になっているのがいちばんの特徴だと思います。
ChatGPTの本もVBAの本も、すでに山ほどあります。ただ、ChatGPTとVBAをガッツリ併用する学習本は見当たりませんでした。PythonやGAS(Google Apps Script)はChatGPTと合わせて学ぶ書籍が複数ありましたし、中級者向けのものもありました。Pythonは機械学習やAIと親和性が高いので、ChatGPTと併用されやすいのは納得です。
ただ、構成としては「著者がコードの構造を説明し、最後におまけ的にChatGPTの使い方を載せる」というものが多いように思いました。例えば変数の使い方を学ぶパートでは、著者が「変数とはこういうもので、こういう構文で使います」と説明して、最後にChatGPTにも問いかけてみるという形です。
この構成だと、ChatGPTを使うのは1パートにつき1回です。プログラミングの勉強にはもっと深くChatGPTを生かせるし、初心者にこそChatGPTを頼ってほしい。だからこそ、僕の本ではChatGPTに大きな役割を持たせたいなと思いました。
ーーそれで、演習やコードの実行パートがたくさん盛り込まれているんですね! 構成を考えるうえで、タカハシさんがいちばん重視したのはどんなことですか?
「ChatGPTで身につけるExcel VBA」の構成でいちばん気をつかったポイントは、「読者が知らない言葉、まだ学んでいない概念が出てこないようにする」ことです。例えばChatGPTに「変数って何?」と聞けば、いろいろな答えやサンプルコードを出してくれます。でもその中に、初心者がわからない概念や知らないキーワードが出てきちゃうと、混乱しますよね。例えば「イベントハンドラ」「ユーザーフォーム」みたいな。
本来あとで学ぶべき概念が先に出てくると、読者は基礎をじゅうぶん消化できないまま次のことを学ぶハメになる。そして自分が今どこにいるのかわからなくなり、意識が発散してしまって、挫折の原因にもなりかねません。
この事態を避けるため、いくつも工夫を重ねました。どうしたら読者の意識が発散せず、次の展開まで持っていけるか。かなりの試行錯誤を経て、結論にたどり着いたきっかけは「ノンプロ研の講座」でした。教材も教え方も、書籍の中でかなり参考にしています。
ーーどんなふうに参考にしているのか、次回の記事でじっくり教えてください!