シート名一覧から個別シートを作成する
A列にあるシート名リストを使い、各シートを作成します。
ChatGPTのプロンプト
以下のVBAコードを作成できますか? マクロ名は「 デモ 」とする。また、日本語でコメントをいれる。 概要:一覧表の各セルの値をシート名として新しいシートを順次作成する。 手順: ・「 一覧 」シートの「 A列 」にある一覧表の各行の値をシート名として新しいシートを作成する。 ・既に同名のシートが存在する場合は、新たにシートを作成しない。 ・最後に、「 一覧 」シートをアクティブにする。 ・コードの最初に画面の更新と警告の表示を停止し、コードの最後でそれらを再開する。
(ポイント1)上の「プロンプトをコピーする」ボタンで、コピーできます。
(ポイント2)ChatGPTに貼り付けて、緑色の単語を、あなたの処理に合わせて修正します。内容の削除や追加もできます。
(注:プロンプトの全てを読む必要はありません。緑色の行のみ集中して読み、修正してください)
(ポイント3)会話のスタイルは、「より厳密に」を選択します。
(ポイント4)プロンプトの改行は、ShiftキーとEnterキーを同時に押します。
ChatGPTの回答
もちろんです。以下に指定の条件に基づいたVBAコードを示します:
Sub デモ() ' 画面の更新と警告の表示を停止 Application.ScreenUpdating = False Application.DisplayAlerts = False Dim ws As Worksheet Dim rng As Range Dim cell As Range ' 「一覧」シートを選択 Set ws = ThisWorkbook.Sheets("一覧") ' A列の範囲を設定 Set rng = ws.Range("A1:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row) ' 各セルの値をシート名として新しいシートを作成 For Each cell In rng On Error Resume Next ' エラーを無視 ' 同名のシートが存在する場合は、新たにシートを作成しない If ThisWorkbook.Sheets(cell.Value) Is Nothing Then ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)).Name = cell.Value End If On Error GoTo 0 ' エラーハンドラをリセット Next cell ' 「一覧」シートをアクティブにする ws.Activate ' 画面の更新と警告の表示を再開 Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
プロンプトを作成し、VBAコードを実行してみて! ChatGPT凄い!!😊
VBAマクロを無料のChatGPT(Microsoft Copilot)で作成します。
Copilot(https://copilot.microsoft.com)はログイン不要。すぐVBAマクロが完成します。