ChatGPTでExcel VBAマクロを自動生成してみた|初心者でも使える実践手順

Excel VBAを一から書くのは正直つらい

Excel VBAを勉強していると、

  • 文法を忘れる

  • オブジェクト名が思い出せない

  • ちょっとした処理でも時間がかかる

という壁に何度もぶつかります。

私自身、「何を作りたいかは分かっているのに、コードが書けない」状態で手が止まることが多くありました。

そこで試したのが ChatGPTにVBAを作らせる方法です。


ChatGPTにお願いした内容(実際のプロンプト)

Excelで以下の処理を行うVBAマクロを作ってください。

・シート「Sheet1」のA列にあるデータを最終行まで取得
・空白セルを除外
・結果をシート「Result」のA列に転記
・初心者にも分かるようにコメント付きでお願いします

ポイント

  • やりたい処理を箇条書き

  • シート名・列を具体的に

  • 「初心者向け」「コメント付き」と明記


ChatGPTが生成したVBAコード

Sub Copy_ColumnA_WithoutBlank()

    '==== 変数の宣言 ====
    Dim wsSrc As Worksheet '元データのシート(Sheet1)
    Dim wsDst As Worksheet '転記先のシート(Result)
    Dim lastRow As Long 'Sheet1 の A列の最終行
    Dim srcRow As Long 'Sheet1 の行番号用
    Dim dstRow As Long 'Result の行番号用

    '==== シートを設定 ====
    Set wsSrc = Worksheets("Sheet1")
    Set wsDst = Worksheets("Result")

    '==== Sheet1 の A列の最終行を取得 ====
    lastRow = wsSrc.Cells(wsSrc.Rows.Count, "A").End(xlUp).Row

    '==== 転記先の開始行を指定 ====
    dstRow = 1 'Result シートの A1 から書き込む

    '==== A列を1行ずつチェック ====
    For srcRow = 1 To lastRow

        'A列が空白でない場合のみ処理
        If wsSrc.Cells(srcRow, "A").Value <> "" Then

            'Result シートの A列へ転記
            wsDst.Cells(dstRow, "A").Value = wsSrc.Cells(srcRow, "A").Value

            '次の行へ移動
            dstRow = dstRow + 1

        End If
    Next srcRow

    '==== 完了メッセージ ====
    MsgBox "転記が完了しました。", vbInformation

End Sub

実際に使ってみた結果

  • そのまま動いた

  • コメントが付いていて理解しやすい

  • 自分で書くより圧倒的に早い

特に「Cells」「Rows.Count」「End(xlUp)」など、初心者がつまずきやすい部分を自然に使ってくれるのが大きなメリットでした。

ChatGPTでExcel VBAマクロを自動生成してみた|初心者でも使える実践手順

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


初心者が注意すべきポイント

  • いきなり実行しない(バックアップ必須)

  • シート名は必ず確認

  • ファイル操作系は特に慎重に


まとめ

ChatGPTは Excel VBA初心者の強力な相棒になります。

  • 一から書けなくてもOK

  • 修正しながら学べる

  • 挫折しにくい

「VBAが苦手」と感じている人ほど、一度試してみる価値があります。

リンク

ChatGPTでExcel VBAマクロを自動生成してみた|初心者でも使える実践手順

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