VBAマクロを作成するプロンプト
上級
このプロンプトでできること
Excel VBAのマクロコードを、やりたいことの説明から生成します。コメント付きで初心者でも理解・修正できます。
プロンプト
以下の処理を行うVBAマクロを作成してください。
【やりたいこと】
{日本語で処理内容を説明}
【対象のExcelファイル】
{シート構成、データの配置}
【実行タイミング】
{ボタンクリック/ファイルオープン時/手動実行}
【入力データ】
{どこにどんなデータがあるか}
【期待する出力】
{処理後の結果}
以下を含めて回答してください:
1. VBAコード(日本語コメント付き)
2. 設定手順
3. 使い方
4. エラーが起きた時の対処法
5. カスタマイズ可能な箇所
カスタマイズ例
- 「エラーハンドリングも追加して」と追記
- 「進捗表示も」と追記
- 「複数ファイル一括処理も」と追記
出力例
VBAマクロ
やりたいこと:シート1のデータを条件で抽出してシート2にコピー
コード
Sub FilterAndCopy() '======================================== ' シート1から条件に合うデータをシート2にコピー '======================================== Dim wsSource As Worksheet '元データのシート Dim wsDest As Worksheet 'コピー先のシート Dim lastRow As Long '最終行 Dim destRow As Long 'コピー先の行 Dim i As Long 'ループ用 'シートを設定 Set wsSource = ThisWorkbook.Sheets("Sheet1") Set wsDest = ThisWorkbook.Sheets("Sheet2") '最終行を取得 lastRow = wsSource.Cells(Rows.Count, "A").End(xlUp).Row 'コピー先の初期位置 destRow = 2 '見出し行をコピー wsSource.Rows(1).Copy wsDest.Rows(1) 'データをループして条件チェック For i = 2 To lastRow '条件:C列が「対象」の場合 If wsSource.Cells(i, "C").Value = "対象" Then wsSource.Rows(i).Copy wsDest.Rows(destRow) destRow = destRow + 1 End If Next i MsgBox destRow - 2 & "件のデータをコピーしました。" End Sub設定手順
- Alt + F11 でVBAエディタを開く
- 挿入 → 標準モジュール
- 上記コードを貼り付け
- 保存(xlsm形式で)