エクセルVBA作成のChatGPTプロンプト文例集

ChatGPTプロンプト、VBAコードをコピペできます😊

MENU

【ChatGPT】カンマ区切りの文字列を、複数セルに分割する(VBA)

カンマ区切りの文字列を、複数セルに分割する

一つのセルに複数の都道府県名が「、」で区切られた表を、各セルに一つ都道府県名がある表に変換する。

 

ChatGPTのプロンプト

下記の処理の概要に沿ったVBAコードを作成できますか?
マクロ名:デモ概要:
1列のデータ(文字列)を、指定した区切り文字で分割し、縦に展開する。
手順:
・表のある「 Sheet1 」を選択する。
・区切り文字「 」をdelimiterに設定する。
・見出し行を除いた表の上セル「 A2 」からその最終行までの値を、dataという配列に格納する。
・newDataという1000行1列の動的配列を作成する。
・data配列をループし、各要素をdelimiterで分割する。
・分割した各要素をnewData配列に追加する。なお、newData配列が小さすぎる場合は、そのサイズを倍にして拡張する。
・ループを抜けたら、newData配列の内容をシートのA列に書き戻す。このとき、newDataIndex - 1行のデータが書き込まれる(newDataIndexはnewData配列のインデックス)。
・最後に、「 A2 」セルの書式のみ、「 A2 」セルの最終行までコピーする。
全体的な指針:
・変数の宣言は使用する直前に行う。これは、変数の宣言を漏らさないためである。
・日本語でコメントをいれる。
・コードの最初に画面の更新と警告の表示を停止し、コードの最後で画面の更新と警告の表示を再開する。

 

(ポイント1)上の「プロンプトをコピーする」ボタンで、コピーできます。

 

(ポイント2)ChatGPTに貼り付けたあと、「」で囲まれた緑色の部分を、あなたの目的に合わせて修正します。プロンプトの削除追加もできます。

(ポイント3)会話のスタイルは、「より厳密に」を選択します。

 

(ポイント4)プロンプトの改行は、ShiftキーEnterキーを同時に押します。

 

ChatGPTの回答

もちろんです。以下に指定の条件に基づいたVBAコードを示します:

Sub デモ()
    ' 画面の更新と警告の表示を停止
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    ' 表のある「Sheet1」を選択
    Sheets("Sheet1").Select

    ' 区切り文字を設定
    Dim delimiter As String
    delimiter = "、"

    ' データを配列に格納
    Dim data As Variant
    data = Range("A2", Range("A" & Rows.Count).End(xlUp)).Value

    ' 動的配列を作成
    Dim newData() As String
    ReDim newData(1 To 1000, 1 To 1)

    Dim i As Long, j As Long
    Dim tempData() As String
    Dim newDataIndex As Long
    newDataIndex = 1

    ' data配列をループ
    For i = 1 To UBound(data, 1)
        ' 各要素をdelimiterで分割
        tempData = Split(data(i, 1), delimiter)

        ' 分割した各要素をnewData配列に追加
        For j = LBound(tempData) To UBound(tempData)
            ' newData配列が小さすぎる場合は、そのサイズを倍にして拡張
            If newDataIndex > UBound(newData, 1) Then
                ReDim Preserve newData(1 To UBound(newData, 1) * 2, 1 To 1)
            End If

            newData(newDataIndex, 1) = tempData(j)
            newDataIndex = newDataIndex + 1
        Next j
    Next i

    ' newData配列の内容をシートのA列に書き戻す
    Range("A2:A" & newDataIndex - 1).Value = newData

    ' 「A2」セルの書式のみ、「A2」セルの最終行までコピー
    Range("A2").Copy
    Range("A2:A" & newDataIndex - 1).PasteSpecial Paste:=xlPasteFormats

    ' 画面の更新と警告の表示を再開
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

 

(ポイント)上のVBAコードはサンプルです。実際にプロンプトを作成し、ChatGPTからの回答をエクセルのVBE画面に貼り付けて、VBAコードを実行してみましょう!😊

 

VBAマクロを無料のChatGPTMicrosoft Copilotで作成します。

Copilot(https://copilot.microsoft.com)はログイン不要。すぐVBAマクロが完成します。

CoPilotのログイン方法

詳しく

3種類のログインの方法があります

GoogleのブラウザChrome(サインインなし

1回質問すると、回答のあと「新しいトピック」に切り替わり、チャットできません。

GoogleのブラウザChrome(サインインあり

ChatGPTと5回までチャットできます。

MicrosoftのブラウザBing

ChatGPTと30回チャットできます。



チャットの活用方法

ChatGPTのチャットは、前の質問の引用は不要です。

ChatGPTは最初の質問からすべてを考慮して回答をします。

つまり、現在の問題点や疑問点だけを伝えれます。

 

VBAコードの実行

詳しく

Excelファイルの拡張子を.xlsmに変更

ExcelでVBAマクロを使うために、ファイルの拡張子を.xlsmに変更する手順は以下の通りです:

  1. Excelファイルを開きます。
  2. ファイルメニューをクリックし、「名前を付けて保存」を選択します。
  3. 「名前を付けて保存」ダイアログボックスが表示されます。ここで、「Excelマクロ有効ブック(.xlsm)」を選択します。
  4. ファイル名を入力し、「保存」をクリックします。

VBE画面に貼り付け

ExcelのVBE(Visual Basic for Applicationsエディタ)で「Module1」を開く手順は以下の通りです:

  1. Excelを開く。
  2. Alt + F11 キーを押してVBEを開く。
  3. 挿入 メニューをクリックし、ドロップダウンメニューから モジュール を選択します。
  4. 左側のプロジェクトエクスプローラーで、対象のワークブックを展開します(ワークブック名の左側にある「+」または「▶」アイコンをクリック)。
  5. 「Modules」フォルダを展開。
  6. 「Module1」をダブルクリック。
  7. 開いた右側の画面に、VBAコードを貼り付け。

 

VBAコード実行

Excelの「開発」タブからVBAコードを実行する手順は以下の通りです:

  1. Excelを開く。
  2. リボンの上部にある「開発」タブをクリック(「開発」タブが表示されていない場合は、[ファイル] > [オプション] > [メインタブ]で「開発」をチェックして表示を有効)。
  3. 「開発」タブの中にある「マクロ」ボタンをクリック。
  4. マクロダイアログボックスが表示されます。ここで実行したいマクロ(VBAコード)を選択。
  5. 「実行」ボタンをクリック。

VBAコードの修正

詳しく

マクロを実行した結果が意図と異なる場合、ChatGPTにVBAコードの修正を依頼します。
なお、修正を依頼するプロンプトは、修正したい点についてのみ記載します。

あなたが作成した上記のVBAコードを実行すると、私のプロンプトの「×××」の処理がされていません。VBAコードを修正できますか?

 

あなたが作成した上記のVBAコードに、「×××」する処理を追加できますか?

VBAコードのエラー

詳しく

変数が宣言されていません。


青色に反転した文字を下記の様にChatGPTに貼り付けて、送信します。

ChatGPTからの回答

修正したコードが再作成されるので、再度VBEに貼り付けて実行します。

インデックスが有効範囲にありません

「デバック」ボタンを押します。

存在しないシート名を指定

Excelのシートは、「リスト」ですが、VBAコードは「リスト表」です。
VBAコードを「”リスト”」に修正し、VBE画面の上にある▶ボタンを押し、コードの実行を再開します。

マクロが表示されない

VBEにマクロを貼り付ける際、前のコードの一部が残っていないか確認してください。

前のデータのSが残ったまま、貼り付けている。

 VBAコードを作成するプロンプトの書き方