AIは魔法使いじゃありませんよ!!
全国の「マクロの書ける事務員さん」!
危機感感じてますか!?
このままじゃAIにお仕事取られちゃうよ~!! って。
でも大丈夫!
実はまだAIは誰のことも助けてくれる魔法使いではないんですよ~!!
でもAIってなんでも出来るんでしょ?
そう思いました?
違うんですよ~!
AIは魔法使いじゃなくて、
私達を魔法使いにしてくれる魔法の杖なんです!!
つまり事務員さんは魔法がかかるのを座って待つのでなく、
自発的に魔法をかけねばなりません。
魔法使いになるために必要なもの
ここで残念なお知らせなんですが、魔法の杖を適当に振り回しても魔法は使えません。
魔法使いになるためにはまず二つ必要なものがあります。
魔法で出したいモノについての知識と、
魔法を使うための呪文です。
魔法で出したいモノについての知識とは?
もしかして経験ありませんか?
「この表を集計したいからマクロを作ってほしい」
といったお願いをAIにしたら、
全く動かないコードが出力されたり、
何とか動いても全然違うことをするコードが出力されたりしたこと。
ここで良くないのは、「曖昧なお願い」をしたことです。
魔法というのは想像力と具体性です。
イメージが曖昧なままでは立派なドラゴンは召喚できません。
例えばドラゴンを出したいなら魔法の杖を握って振り上げ、
こういうお願いをすることです。
「身長は日本の二階建ての戸建て住宅の高さくらいで、
身体は赤色で3mくらいの炎の玉を吐くことが出来て、
翼があって人を背に乗せて空を飛ぶことが出来て、
人間に好意的で協力的なドラゴン!
この公園の広場の真ん中に出てこ~い!」
ここまで必要です。
めちゃめちゃ冗長に思えるかもしれませんがこのくらい必要です。
つまり魔法でドラゴンを出すためには、
ドラゴンにはどのようなことが出来て、
どんな性状であって、
どんな見た目や大きさをしていて、
そしてそれをどこに出現させれば安全なのか。
その辺りを知っておかねばなりません。
それを怠るとどうなるのか
魔法の杖であるAIは賢いので、
それ自身が色々考える能力を持っています。
曖昧なお願いをされた魔法の杖は、お願いされたことを参考に自分の中で想像します。
「どんなモノが欲しいんだろう?
どんな結果が欲しいんだろう?」
と。
なので、指示した部分が少なければ少ないほど、
魔法使いの意図から外れやすくなります。
例えば大きなドラゴンが出てきて欲しかったのに肩に乗るほどの小さなドラゴンが出てきちゃうかもしれないし、
ドラゴンには炎を吐いて欲しかったのに氷を出すドラゴンが出てきちゃうかもしれないし……
人間のこと嫌いなドラゴンが出てきたら大惨事になるかもしれないし、
ドラゴンが家の屋根の上に出現したら、家はぺったんこに潰されてしまうかもしれません。
そうなったら困っちゃいますよね。
だから指示は具体的に、漏れなくする必要があります。
結局のところ、求められるのは要件定義の能力に近いです。
入力されるデータや情報。
必ず守って欲しいこと。
最終的に欲しいもの。
それらを理解してお願いをしなくてはなりません。
だからこそAIは魔法使いではなく魔法の杖なのです。
ちゃんと使い手が使ってやらねばなりません。
もしあなたが「まだあんまり自分でマクロを書いたことがない事務員さん」なのであれば、
まずは「マクロの書ける事務員さん」を目指すべきです。
少なくとも「ExcelVBAの基礎知識が分かる事務員さん」ですらないとすれば、
AIはロクなマクロを出してはくれないでしょう。
AIは別段人間のことを困らせようとしているワケではないのだけれど、
出来ないことを出来ると間違って言ってしまったり結果的に嘘を吐いたりすることがあるので、
それを判断できないと事務員さんは動かないマクロを抱えて泣くことしかできなくなってしまいます。
まだまだ魔法は万能ではないのです。
ちなみに知識を得るためにもAIは有効です
例えば私の書いてるこの記事の中に知らない単語があれば、
AIに頼んでみると良いですよ。
「xxというものについて、可能な限り噛み砕いて優しく教えて欲しい」
とか頼めばかなり噛み砕いて飲み込みやすくしてくれます。
その説明の中にもきっと知らない言葉が最初は多く出てくるでしょう。
そうしたらまた同じ事を頼めばいいのです。
こうしてどんどん知識を増やしていけると良いですね。
ただ、前述の通り時折AIは間違ったり嘘を吐いてしまうことがあるので、
全てをAIに聞いたことで知った気にならず、
ある程度信頼できる場所(MS公式のヘルプサイトとか)で時々調べなおしたり、
それでよく分からなければAIに別のチャットで同じ事を訊ねなおしてみたりしてみるとよいですよ!
同じチャットで延々と喋っているとAIは段々ワケ分かんなくなってトンチンカンなことを言い出す性質があるので、
なんか怪しくなってきたなと思ったら新たなチャットに移ってみるとよいですよ~。
マクロを生成させるときも関係ないマクロ作るなら新しいチャットに移った方がよいですよ!
あまり一カ所で色々頼むとどこまでがどのマクロの要件かが分からなくなることが多いようなので。
魔法を使うための呪文とは
ここまで述べてきた部分と被る部分が大きいのですが、
魔法の呪文、つまり「プロンプト」と呼ばれるAIへのお願いは、まずは具体的であることが求められます。
だからこそ知識が必要なのですが、
その上でどんなお願いが効果的であるかはまあこなした数と経験がモノを言います。
なのでここで私が魔法の掛かりやすさを上げる事が多いと感じた呪文の例をいくつか教えましょう。
具体的な手法を指示する
これは打率をかなり上げます。
例えば
「WS上から取得したファイルパスとファイル名からフルパスを作成するときは、文字列結合でなくFSOを用いて欲しい」
とお願いするとか、
「FSOを使用する場合は参照設定を避け遅延バインディングして使用して欲しい」
とお願いするとかです。
具体的手法でお願いするとAIはおおよそそれを守るので、
適当な方法を使ったり実際はVBAでは不可能な手法を使おうとしてエラーを出したりすることが減ります。
理由を説明する
案外大切です。
例えば上記のような具体的手法が何故必要なのかを説明することで、
お願いが守られやすくなったり、
役立つ提案や結果を得やすくなります。
例えば
「ファイルパスを入力する人間はフルパスを作成するときファイルパスとファイル名の間に/が必要であることを知らないことが多いから」
とか、
「VBAに詳しくない人間が使うマクロなので参照設定が外れると混乱の元になるから」
とか説明することです。
するとAIは
「じゃあファイル名に拡張子が付いているかも確かめた方がいいんじゃない?その処理入れといたよ」
とか、
「じゃあ他の外部参照も遅延バインディングがいいかもね。他も全部遅延バインディングしておいたよ」
とか気を利かせてくれます。
道具なんだから意図は説明しなくて良いじゃん、は実は間違いなんですよ~!
しっかり理由も説明してみてあげてくださいね。
大切な相棒として扱ってあげてください。
処理を分割させる
結構様々な計算や集計が必要なときは、
「処理単位でプロシージャを分割しメインプロセスはそれを呼び出して使ってほしい」
といったお願いをするのが有効です。
なんだか打率が上がる気がするのと同時に、
魔法を使った後の事務員さんのデバック作業もしやすくなるので一石二鳥です。
(もっとやるならDTOクラスを作ってそこでバリデーションさせろとか指示すると結構良くなる感じもしますが、
そこまでやるかはちょっと要検討事項かも……
あ!この()内は全然知らなくても良いことなんですが、
興味があればDTOクラスって何?とかAIに聞いてみても楽しいかもですよ!)
ちなみにここまでぺろりと喋ってきましたが、
この辺りの意味するところの8割くらいを理解できないなら、
魔法使いを目指す前にもう少し知識の部分を磨いてもいいのかも。
魔法使いになって魔法の杖を使える人間になろう!
結局のところ、
AIに喰われないためにはAIを使う人間になって喰う側になるしかないんですよ!
事務員さん!頑張って魔法使いになりましょう!!
AIの進化は待ってくれないですよ~!!
素手でラーメン食ってる女の子の絵を出力してた時代とはもう違うんですよ!!
結局そのためには知識磨くしかないんです!
そこAIに甘えてたらあなたのデスク、取られちゃいますよ~!!
頑張りましょうね~!!
それでは、よき魔法ライフを!!