Office製品で使えるプログラミング言語、VBA。初心者がVBAを学ぶとき、ChatGPTを使うと効率がいいのでは? そう考えたタカハシノリアキさんがこの夏、新著「ChatGPTで身につけるExcel VBA」を上梓しました。「ChatGPTを使いこなさないと読み進められない」というこの書籍について、タカハシさんにインタビューしました。
ChatGPTと対話することが、アウトプットの機会にもなる
ーーChatGPTとのやりとりは、初心者にとって大事なポイントになりそうですね。
そうなんです。ChatGPTとの対話を通してわからない部分を解決したり、コードを書いてアウトプットしたりできます。これがVBAの勉強にすごくいい効果を発揮すると思うんです。
実際に本書では、いろいろなキーワードを元にして、ChatGPTに言葉の定義や構文の書き方、サンプルコードを出力してもらうのが柱となっています。さらに著者の解説を適宜はさみながら、読者が自らコードを実行するという流れなので、ChatGPTを操作しながら自然に学んでいけると思います。
一般に、何か学習するときのアウトプットとインプットの割合はだいたい「アウトプット7 : インプット3」がベストといわれています。でも一般的な学習はインプットに偏りがちで、アウトプットする機会が少ないです。そもそも、アウトプットが大事だと認識できていないケースも多いようです。
ChatGPTと対話する中で、プロンプトを書き、工夫しながら質問することになるので、それ自体に大きな効果があると思います。本書は、この効果を狙いの1つにしているので、1章は「ChatGPTをはじめよう」、2章は「VBAをはじめよう」として、並行して学べるようにしています。
ーー初心者は、ChatGPTの使い方が難しいと感じることもあるようです。
たしかに多少のコツはありますが、高いスキルはまったく必要ありません。難しいと感じるなら、単にChatGPTを使う機会がないからじゃないかと思います。AIもコミュニケーションなので、英語と一緒ですね。初心者はとにかく、触れる経験と場数が必要です。
意外だったのは、ノンプロ研メンバーの中にもChatGPTを使っていない人が多かったこと。「なんとなくプログラミング学習に使えそうだから、ちょっとさわってみよう」というノリで使っているうちに、コツをつかめると思います。
ーータカハシさんはすでにVBAやChatGPTに詳しいですよね。ターゲットである初心者に、よりわかりやすく伝えるために工夫した点はありますか?
ターゲットの理解度に合わせてテキストを書くという作業には、けっこう慣れています。これまでブログを書くときも、Voicyでしゃべるときも、「超初心者でもすぐ理解できるように」と思いながらやってきましたから。
その中で今回やった工夫は、僕が主宰している「ノンプログラマーのためのスキルアップ研究会(ノンプロ研)」のメンバー4人にモニターになってもらったことです。「この本を初心者が読んだらどう思うか? どう受け取るか?」をフィードバックしてもらおうと募ったところ立候補してくれたのが4人で、全員とても熱心に取り組んでくれて助かりました。初心者の視点を補完できて、書籍に厚みが出たと思います。
モニター:石津くるみさん(ノンプロ研メンバー)
私はノンプロ研で、VBA初心者講座に参加しています。講座に参加する前から、モニターとして原稿を読ませてもらいました。一つひとつの項目がていねいに書かれていて、初心者にやさしい書籍だというのがいちばんの印象です。私はこれまで、ChatGPTを使った経験はほぼなかったんですが、原稿を読む中で初めてさわってみて、ChatGPTに頼ることを学びました。
ChatGPTに質問しても、必ずしも私が望んだ答えが返ってくるとは限らないけど、大まかな軸は掴めるんだなと知ったのが大きな収穫です。原稿を読み進めるうちに、ChatGPTへの質問の仕方や条件の付け方などコツがわかってきて、もうVBAの勉強にはChatGPTを手放せません(笑)。
もう1つ、ChatGPTの特徴として、同じような質問に対しても、毎回違う回答が返ってくるという点があります。書籍の中ではそのバリエーションを網羅しておきたいと思い、モニターさんにサポートしてもらって、ChatGPTの返事のバリエーションを調べました。
読者が書籍の流れに沿ってChatGPTに質問するとき、「きっとこんな返事がくるだろうな」とある程度想定していますよね。でも、もしChatGPTから想定外の答えが返ってきたら、もうそこで手詰まりになっちゃいます。だから、想定される回答パターンを調べておこうと。
ーーChatGPTの進化は日進月歩です。例えば2024年5月半ばに「GTP-4o」が発表になりましたが、書籍の執筆に影響はありましたか?
ChatGPTのアップデートは、本書の執筆中にもじゅうぶん起こり得ると思っていました。でも、実際に発生するとうろたえましたね(笑)。タイミング的には、最後の8章までほぼ書き上げていたタイミングだったので……(笑)。
ただ、ChatGPTへの問いかけ方や役割など根本的なところは変わらないので、原稿の大改造はせずに済みました。画面のスクショを撮り直したくらいです。
ノンプロ研を参考に「サンプルコードドリブン」で構成
ーー書籍の中での教え方は、ノンプロ研の講座を参考にされたと伺いました。具体的にどう参考にしましたか?
いちばんは「サンプルコードドリブン」の考え方です。僕は、示されたサンプルコードを“写経”して、その構造や書き方を知るのがプログラミング学習の第一歩だと考えています。実際にノンプロ研の講座はコードの写経から始まるし、本書でもこのやり方を踏襲しました。
本書の方向性を考えたとき、「最初にカリキュラムを明示する」とか「ChatGPTが出したカリキュラムにダメ出しする」という方向性も出ました。でも、ターゲットや書籍としての完成度を考えると、やっぱりサンプルコードに沿っていくやり方がぴったりだと判断しました。
学びのベースとなる思想でいうと、ノンプロ研の初心者講座で使っている「上達のための8つの約束」も本書に取り入れました。「実務で使う・習慣化する・構文どおりに書く・調べる・打たない・構造化データ・リーダブルコード・アウトプット」の8つです。詳しく知りたい方、体感してみたい方は、ぜひ書籍を手にとってみてくださいね。
ーー書籍全体の流れも、ノンプロ研の講座を参考にしたんでしょうか。
そうですね。VBAの基礎から始まり、流れ、部品化など順を追って学んでいくという展開も、ノンプロ研の講座を参考にしています。
またノンプロ研では、講座を受講する前に「この講座を受けてどんなゴールを目指すか、どんなツールをつくりたいか」という目的を整理します。それも今回の書籍に生かして、冒頭に「ChatGPTに、VBAを使うとどんなことができるか聞いてみよう!」パートを入れました。ここで読者が、VBAで何をしたいのか、目的を整理してもらえればと思います。
ーー基礎から正しく順を追って、かつ読者が成功体験を得ながら学んでいけるところが、初心者に親切ですね。
はい。プログラミングの階段をのぼりつつ、ChatGPTの階段ものぼれる。ダブルでレベルアップしていけるのが、この書籍の面白さだと思います。書籍は1〜8章までありますが、1章進むごとに1つずつ新しいパターンを増やしていきます。例えば3章で出た複数のパターンに対して、4章で制御構文が追加されたり、フローチャートを書くパートがあったりします。
だから、学習が進むたびに「あ、こんなこともできるんだ!」という発見があるわけです。それが手応えになって、挫折せずに学んでいけるんじゃないかと思います。