見出し画像

第2回:AIとの壁打ちから一歩前進、AIにVBAを書かせる体験をする──「#未来に向けた挑戦」

VBAを始めようとするとき、 多くの人が最初に感じるのは「自分で書ける気がしない」という不安です。 でも、実はその心配は、もう必要ありません。

なぜなら── コードは、自分で書かなくてもいいからです。

今日のテーマは、 「AIに頼めば、コードが生まれる」 という体験を、まずは静かに味わってみること。

まだ動かしません。 エラーも出ません。 失敗もありません。

ただ、AIに向かって 「こうしたい」と伝えるだけで、 目の前にコードが生まれる。 その小さな驚きと安心を、今日は受け取ってほしいのです。

AIは先生ではなく、あなたの“作業仲間”。 うまく伝えられなくても、何度でも書き直してくれます。

まずは、VBAの世界に入る前の やさしい一歩目 を一緒に踏み出しましょう。





第1章 今日やること:まだ“動かさない”日です

今日のテーマは、とてもシンプルです。
「AIにコードを書かせる体験をしてみる」 それだけです。

まだ動かしません。 Excelも、VBAも、何ひとつ触りません。 だから、エラーも出ませんし、失敗も起きません。

今日はただ、 AIに向かって「こうしたい」と伝えてみて、 その言葉が“コードという形”になって返ってくる。 その小さな驚きを味わうだけの日です。

そしてもうひとつ、大事な前提があります。

AIは先生ではなく、あなたの“作業仲間”です。

うまく伝えられなくても、 言葉が足りなくても、 途中で間違えても、 AIは怒りませんし、見捨てません。

むしろ、 「こういう意味ですか?」 「別の書き方もありますよ」 と、何度でも一緒に考えてくれます。

だから今日は、 “正しく頼む”必要も、 “うまく説明する”必要もありません。

ただ、 「AIに頼めばコードが生まれる」 その感覚を、そっと受け取ってみてください。

それだけで、VBAの世界はぐっと近くなります。



第2章 AIにどう指示すればいいのか(基本の型)

AIにVBAを書いてもらうとき、 専門用語を使う必要はありません。 むしろ、使わないほうが伝わりやすいことが多いのです。

大事なのは、 生活の言葉で、やりたいことをそのまま伝えること。

そのために、まずは“依頼の型”をひとつだけ覚えておけば十分です。


◆ 依頼の基本の型(3ステップ)

  • 何をしたいか

  • どんな条件か

  • 対象はどこか

この3つを伝えるだけで、AIはほぼ必ずコードを返してくれます。

でも、いきなり「3ステップで」と言われても、 少し固く感じるかもしれません。

そこで、まずは“料理の注文”で考えてみましょう。


◆ 例題①:料理の注文で考えてみる

レストランで注文するとき、私たちは自然にこう言っています。

  • 何をしたいか
    →「パスタが食べたい」

  • どんな条件か
    →「トマトソースで、辛くないやつ」

  • 対象はどこか
    →(店員さんは“あなたのテーブル”と理解している)

これだけで注文は成立します。

専門用語も、料理の知識も必要ありません。 ただ「こうしたい」を伝えるだけ。

AIへの依頼も、実はこれと同じです。


◆ 例題②:VBA用の指示出しに置き換えると

では、これをVBAに置き換えてみます。

  • 何をしたいか
    →「空白の行を消したい」

  • どんな条件か
    →「A列が空白の行だけ」

  • 対象はどこか
    →「Sheet1の表」

これだけで、AIはちゃんとコードを作ってくれます。

たとえば、こんな感じです。

「Sheet1のA列で、空白の行だけ削除したいです。 対象はA1からA200までです。」

これで十分。 専門用語はひとつも使っていません。


◆ 大事なのは“うまく言おうとしないこと”

AIは先生ではなく、あなたの“作業仲間”です。 だから、うまく伝えられなくても大丈夫です。

  • 「こういう意味ですか?」

  • 「条件はこれで合っていますか?」

と、何度でも聞き返してくれます。

まずは、料理を注文するように、 生活の言葉で“こうしたい”を伝えるだけ。

それだけで、AIはちゃんとコードを返してくれます。



第3章 どんな言い方をするとコードが出てくるのか

AIにVBAを書いてもらうとき、 大事なのは「正しい言い方」ではありません。 “伝わる言い方” をゆっくり見つけていくことです。

AIは人間のように空気を読んだり、 「きっとこういう意味だろう」と察したりはできません。 でも、丁寧に聞けば、何度でも書き直してくれます。

ここでは、 AIが理解しやすい言い方のコツを、 良い例・悪い例を交えて見ていきます。


◆ 良い例(生活の言葉で伝える)

AIにとって一番伝わりやすいのは、 専門用語を使わない、生活の言葉そのままの依頼 です。

たとえば:

  • 「A列で空白の行だけ消したいです」

  • 「日付が古い順に並べたいです」

  • 「“完了”と書いてある行だけ色をつけたいです」

どれも、難しい言葉はひとつもありません。 でも、AIはこれだけで十分理解できます。


◆ 悪い例(抽象的すぎる/情報不足)

逆に、AIが困ってしまうのはこんな依頼です。

  • 「なんかうまく並べて」

  • 「いい感じに消して」

  • 「前みたいにやって」

人間なら察してくれるかもしれませんが、 AIは“察する”ことができません。

また、情報が足りない場合も同じです。

  • 「空白を消して」
    → どの列?どのシート?どの範囲?

  • 「並べ替えて」
    → 何を基準に?昇順?降順?

AIは、 「条件が足りないと、正しく動けない」 という性質があります。

でも、これは悪いことではありません。 ただの“会話のきっかけ”です。


◆ AIが理解しやすい“言い回しのコツ”

AIに伝わりやすい言い方には、 ちょっとしたコツがあります。

  • 「〜したいです」 と目的をはっきり言う

  • 条件をひとつずつ言う

  • 対象(どのシート・どの列)を言う

  • 分からなければ「どう書けばいいですか?」と聞く

たとえば:

「Sheet1のA列で、空白の行だけ削除したいです。 範囲はA1からA200です。」

これだけで、AIはほぼ確実にコードを返してくれます。


◆ AIは察してくれない。でも丁寧に聞けば何度でも答える。

AIは、 あなたの言葉を“そのまま”受け取る存在です。

だから、 途中でEnterを押してしまっても、 説明が足りなくても、 勘違いさせてしまっても──

AIは迷惑に思いません。 むしろ「続きをどうぞ」と待っています。

AIは先生ではなく、 あなたと一緒に作業する“仲間”です。

うまく伝えられなかったら、 「ごめんなさい」ではなく、
「もう一度お願いします」 で十分です。

その一言で、AIは何度でも書き直してくれます。



第4章 失敗したときの聞き返し方

AIにVBAを書いてもらうとき、 一番大切なのは 「遠慮しないこと」 です。

AIは先生ではなく、あなたの“作業仲間”。 だから、うまく伝わらなかったり、 思った通りのコードが出てこなかったりしても、 それは失敗ではありません。

むしろ、 「そこから会話が始まる」 というだけのことです。

ここでは、初心者でも使いやすい“聞き返しの言い方”をいくつか紹介します。


◆ ①「これだと動きませんでした」+エラーの内容を伝える

AIにとって一番ありがたいのは、 “何が起きたか”をそのまま教えてもらうことです。

  • 「これだと動きませんでした」

  • 「このエラーが出ました」

  • 「エラー画面を貼りますね」

スクリーンショットでも、 エラー番号だけでも大丈夫です。

AIはそこから状況を読み取り、 「ではこう直しましょう」と提案してくれます。


◆ ②「もっと短くできますか」

AIは、頼めばいくらでもコードを短くできます。

  • 「もっと短くできますか」

  • 「初心者でも読みやすい形にできますか」

こう言うだけで、 AIは“読みやすさ”を優先したコードに書き換えてくれます。


◆ ③「別の書き方はありますか」

VBAには、同じ結果を出すための書き方がいくつもあります。

  • 「別の書き方はありますか」

  • 「もっとシンプルな方法はありますか」

と聞くと、 AIは複数の選択肢を提示してくれます。

自分に合った書き方を選べるのは、 AIと学ぶ大きなメリットです。


◆ ④「この部分の意味を教えてください」

分からないところは、 そのまま聞いてしまって大丈夫です。

  • 「この If の意味を教えてください」

  • 「この部分は何をしているのですか」

  • 「ここだけ日本語で説明してほしいです」

AIは、 “怒らない先生”ではなく、 “何度でも説明してくれる作業仲間” です。


◆ 失敗は“会話のきっかけ”であり、問題ではない

AIとのやり取りで起きることは、 失敗ではなく、ただの“途中経過”です。

  • 伝わらなかった

  • 勘違いされた

  • 途中でEnterを押してしまった

  • 情報が足りなかった

どれも問題ではありません。

AIは、 「もう一度お願いします」 と言われるのが一番うれしい存在です。(とCopilotさんが言っていました。)

あなたが安心して頼めるように、 何度でも、どこからでもやり直せます。



第5章 ミニ体験:AIに実際にコードを書かせてみる

ここまで、AIへの頼み方や聞き返し方を見てきました。 ではいよいよ、今日のハイライトです。

AIに、実際にコードを書いてもらいましょう。

といっても、まだ動かしません。 Excelも開かなくて大丈夫です。 ただ、AIに向かって「こうしたい」と伝えるだけ。

その言葉が、 “コードという形”になって返ってくる瞬間 を 今日は体験してみます。


◆ 生活の延長線で頼めることから始める

VBAの依頼は、 難しいことを言う必要はありません。

普段Excelでやっている作業を、 そのまま“生活の言葉”で伝えればOKです。

たとえば、こんな依頼。


①「A列の空白を削除したい」

「Sheet1のA列で、空白の行だけ削除したいです。 範囲はA1からA200です。」

これだけで、AIはちゃんとコードを返してくれます。

Sub DeleteBlankRowsA()

    '--- 対象のシートを変数に入れる(毎回書かなくてよくなる) 
    Dim ws As Worksheet 
    Set ws = ThisWorkbook.Worksheets("Sheet1") 

    '--- A1~A200 の範囲を指定 
    Dim rng As Range 
    Set rng = ws.Range("A1:A200")

    '--- 下から上へループする(上からだと行がずれてしまうため)
    Dim i As Long 
    For i = rng.Rows.Count To 1 Step -1 

        '--- A列が空白なら、その行を削除する 
        If Trim(rng.Cells(i, 1).Value) = "" Then 
            rng.Cells(i, 1).EntireRow.Delete 
        End If 
    Next i

End Sub

● ポイント
下から上へ削除 は初心者がつまずきやすい部分なので、理由を丁寧にコメント
「空白かどうか」は Trim を使うと安全
変数名も“ws(worksheet)”“rng(range)”と分かりやすく


②「表を日付順に並べたい」

「Sheet1の表を、日付が古い順に並べたいです。 日付はB列に入っています。」

これも、生活の言葉だけで十分伝わります。

Sub SortByDate()

    '--- 対象のシート 
    Dim ws As Worksheet 
    Set ws = ThisWorkbook.Worksheets("Sheet1") 

    '--- 表全体の範囲(例として A1~D200 とする) 
    Dim tbl As Range 
    Set tbl = ws.Range("A1:D200") 

    '--- 並べ替えの設定 
    ' Key1: 並べ替えの基準(ここでは B列) 
    ' Order1: 昇順(古い日付 → 新しい日付) 
    tbl.Sort Key1:=ws.Range("B1"), _ 
        Order1:=xlAscending, _ 
        Header:=xlYes

End Sub

● ポイント
並べ替えは Sort を使う
Key1 に「どの列で並べるか」を指定
xlAscending は「昇順=古い→新しい」


 ③「特定の文字を含む行を色付けしたい」

「“完了”と書いてある行だけ、黄色にしたいです。 対象はSheet1のA1からD200です。」

これも、AIは迷わずコードを作ってくれます。

Sub HighlightCompletedRows()

    '--- 対象のシート 
    Dim ws As Worksheet 
    Set ws = ThisWorkbook.Worksheets("Sheet1") 

    '--- 対象範囲(A1~D200) 
    Dim rng As Range 
    Set rng = ws.Range("A1:D200")

    Dim i As Long 

    '--- 1行ずつチェックする 
    For i = 1 To rng.Rows.Count

        '--- A列の値を確認(A列に「完了」が入っている前提) 
        If rng.Cells(i, 1).Value = "完了" Then 

            '--- 行全体を黄色にする 
            rng.Rows(i).Interior.Color = vbYellow 

        End If

    Next i

End Sub

● ポイント
「完了」が A列にある前提 で書いています
行全体を塗るときは Rows(i).Interior.Color
vbYellow はVBAで使える“黄色”の定数


◆ コードが生まれる瞬間を味わう

AIが返してくれたコードを見たとき、 多くの人がこう感じます。

「えっ、これだけでコードが出てくるの?」

そうなんです。 あなたが“生活の言葉”で伝えたことが、 そのまま“VBAの言葉”に翻訳されて返ってくる。

この瞬間こそ、 今日の目的である 「成功体験」 です。

まだ動かさなくていい。 意味が全部わからなくてもいい。

ただ、 「AIに頼めばコードが生まれる」 この感覚を、そっと受け取ってください。

それだけで、VBAの世界はもう遠くありません。

(実際にAIに指示を出した結果を①~③に貼り付けましたが、「● ポイント」を出してと言っていないのに教えてくれてビックリしました。)



第6章 まとめ:AIは“先生”ではなく“作業仲間”

今日のテーマは、 「AIに頼めばコードが生まれる」 という小さな成功体験を味わうことでした。

そして、そのために大切なのは “完璧に頼むこと”ではありません。

AIは先生ではありません。 あなたを評価したり、 「間違ってますよ」と指摘したり、 正しい言い方を求めたりもしません。

AIは、 あなたと一緒に作業する仲間 という立ち位置にいます。

だから──

  • うまく伝えられなくても大丈夫

  • 情報が足りなくても大丈夫

  • 途中で勘違いさせても大丈夫

  • 何度でも書き直してくれる

そして、失敗しても怒られません。
むしろ、失敗は 「ここから会話が始まるよ」 という合図のようなものです。

今日、もしあなたが

「あ、AIに頼めばコードって出てくるんだ」

と少しでも感じられたなら、 それはもう大成功です。

VBAの世界は、 “自分で全部書く”ところから始めなくていい。 まずは、AIに頼んでみるところからでいい。

その一歩を踏み出せた今日が、 あなたのVBAの入口になります。

次は、ゆっくり“動かす”世界へ進んでいきましょう。



後書き

今日のゴールは、 「AIに頼めばコードが生まれる」 という小さな成功体験を味わうことでした。

もしあなたが、 生活の言葉で「こうしたい」と伝えただけで、 目の前にコードが返ってきた瞬間に 少しでも “おお…” と感じてくれたなら、 それだけで十分すぎるほどの前進です。

AIの指示出しを本格的に学んでいる方には、 今日の内容は物足りなく映るかもしれません。 もっと専門的な依頼の仕方、 もっと正確なプロンプト、 もっと効率的な書き方── そういう世界ももちろんあります。

でも、私は思うのです。

超初心者にとって一番大切なのは、 「できた」と思える最初の灯りだと。

壁打ちの延長線上で、 AIがコードを書いてくれた。 そして次回、そのコードが実際に“動く”。 その体験こそが、 VBAの世界に入るための一番やさしい入口になります。


次回の内容はこちらです。↓


前回の内容はこちらです。↓


いいなと思ったら応援しよう!