目次
Excel VBAを一から書くのは正直つらい
Excel VBAを勉強していると、
-
文法を忘れる
-
オブジェクト名が思い出せない
-
ちょっとした処理でも時間がかかる
という壁に何度もぶつかります。
私自身、「何を作りたいかは分かっているのに、コードが書けない」状態で手が止まることが多くありました。
そこで試したのが ChatGPTにVBAを作らせる方法です。
ChatGPTにお願いした内容(実際のプロンプト)
ポイント
-
やりたい処理を箇条書き
-
シート名・列を具体的に
-
「初心者向け」「コメント付き」と明記
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初心者の強力な相棒になります。
-
一から書けなくてもOK
-
修正しながら学べる
-
挫折しにくい
「VBAが苦手」と感じている人ほど、一度試してみる価値があります。
リンク
ChatGPTでExcel VBAマクロを自動生成してみた|初心者でも使える実践手順