仕様が曖昧でもOK?ChatGPTにExcel VBAを作らせてみた結果

「何を作りたいか言語化できない」問題

Excel VBAを使っていると、よくこんな状態になります。

  • なんとなくやりたいことは分かっている

  • 毎回手作業でやっていて「面倒だな」と思っている

  • でも、それをどう説明すればいいか分からない

頭の中では「この作業、まとめて一気にできたら楽なのに…」と思っているのに、文字にしようとすると手が止まる

今回は、そんな状態のままあえてChatGPTにかなり雑な指示を投げてみました。


投げたプロンプト

作業者 → ChatGPT

Excelでデータを整理するマクロを作りたいです。
いい感じにお願いします。

正直、「これで伝わるわけがない」と思っていました(笑)


ChatGPTの反応

驚いたのは、いきなりVBAコードを書いてこなかったことです。

ChatGPT → 作業者

どのようなデータを整理したいですか?

例えば、
・どの列のデータでしょうか ・不要なデータはありますか ・結果はどこに出力したいですか

「なるほど、まずはそこからか」と思いつつ、こちらもまだモヤッとしたまま答えました。


作業者 → ChatGPT(まだ曖昧)

毎回、A列にデータが入っていて、
空白とかいらない行が混ざっています。
それを整理したいです。

ChatGPT → 作業者(さらに深掘り)

ありがとうございます。
空白行を削除したいということでしょうか?
それとも、条件に合うデータだけを抽出したいですか?

また、整理した後のデータは
・同じシート上で上に詰めたい
・別のシートにまとめたい

どちらでしょうか?

ここで初めて、「あ、自分は 別のシートにまとめたい んだな」と気づきました。


作業者 → ChatGPT(少し具体的に)

空白は消したいです。
元のデータはそのまま残して、
別のシートにきれいに並べたいです。

ChatGPT → 作業者(仕様が見え始める)

了解しました。
では、次を確認させてください。

・元データのシート名
・整理後のデータを書き出すシート名
・見出し行(1行目)はありますか?

この時点で、もう頭の中では完成イメージがかなり固まっていました。


作業者 → ChatGPT(ほぼ仕様)

元データは「Sheet1」です。
結果は「Result」というシートに出したいです。
1行目は見出しなので、そのまま残したいです。

ChatGPTがまとめた仕様(ここで整理される)

ChatGPTは、これまでのやり取りを踏まえて次のように整理してくれました。

・Sheet1のA列を対象
・1行目は見出し
・空白セルは除外
・空白以外のデータを
ResultシートのA列に上から順に転記

ここで初めて、「あ、自分がやりたかったのは、空白削除+別シート転記だったんだ」と、はっきり言語化できました。


対話の結果、完成したVBAマクロ

そして、この仕様を元にChatGPTが作ってくれたのが、次のVBAです。

Sub Data整理マクロ()

    Dim wsSrc As Worksheet
    Dim wsDst As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim dstRow As Long

    Set wsSrc = Worksheets("Sheet1")
    Set wsDst = Worksheets("Result")

    lastRow = wsSrc.Cells(wsSrc.Rows.Count, "A").End(xlUp).Row
    dstRow = 2   ' 見出しの次の行から

    For i = 2 To lastRow
        If wsSrc.Cells(i, "A").Value <> "" Then
            wsDst.Cells(dstRow, "A").Value = wsSrc.Cells(i, "A").Value
            dstRow = dstRow + 1
        End If
    Next i

End Sub

最初の「いい感じにお願いします」からは想像できないくらい、実用的なマクロが完成しました。

■■■スポンサーリンク■■■

実際に使って感じたメリット

今回、一番大きかったのは「自分の頭の中が整理された」ことです。

最初は、

  • 何が問題なのか

  • どんな処理が必要なのか

  • どこが面倒なのか

自分でも曖昧でした。

でも、ChatGPTに質問され、それに答えていくうちに、

  • 「あ、そこが面倒だったんだ」

  • 「本当はこうしたかったんだ」

と、自分の考えが言葉になっていく感覚がありました。

また、

  • いきなり完璧な仕様を書かなくていい

  • 分からないところは質問してくれる

  • 間違っても怒られない

という点は、初心者にとってかなり心強いです。
「こんな曖昧な質問していいのかな?」と思う必要がありません。


まとめ

ChatGPTは、仕様が固まっていない段階から使えるのが最大の強みです。

  • 頭の中がモヤモヤしていてもOK

  • うまく言葉にできなくてもOK

  • 対話しながら形にできる

特にExcel VBAのように、

  • 「何となくやりたい作業はある」

  • 「でも、説明が難しい」

という場面では、ChatGPTは コードを書くツール以上の存在になります。

「VBAが書けないから使う」のではなく、「考えを整理するために使う」

そう考えると、ChatGPTは初心者だけでなく、経験者にとっても非常に強力な相棒になると感じました。

リンク

ChatGPTでExcel VBAマクロを自動生成してみた|初心者でも使える実践手順
Excel VBAのエラー修正をChatGPTに頼んだら原因が一発で分かった話
仕様が曖昧でもOK?ChatGPTにExcel VBAを作らせてみた結果

■■■スポンサーリンク■■■