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

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

MENU

【ChatGPT】クロス集計表のデータをリスト形式に変換する(VBA)

クロス集計表のデータをリスト形式に変換する

縦が商品名、横が店舗名のクロス表を、縦のリスト表に変換します。

 

ChatGPTのプロンプト

下記の処理の概要に沿ったVBAコードを作成できますか?
マクロ名:デモ処理の概要:
・クロス集計表のデータをリスト形式に変換し、「 リスト表 」シートの「 B2 」セルから出力する。
・「 リスト表 」シートに出力する前に、リスト表の初期化する。
・「 リスト表 」の1行目には見出しを入れ、その1列目の値は「 商品 」、その2列目の値は「 店舗 」、その3列目の値は「 在庫数 」、それらの塗りつぶしの色は「 クロス表 」シートの「 B2 」セルにする。
・「 リスト表 」が完成したら、「 リスト表 」の表全体を3列目の値で昇順に並び替える。
・「 リスト表 」が完成したら、「 リスト表 」全体に罫線を入れる。
・最後に、「 リスト表 」をアクティブにする。
クロス集計表:
・クロス集計表は、「 クロス表 」シートの「 B2 」セルから始まり、行数と列数は可変。
・クロス集計表は、「 B列 」と「 2行目 」に見出しがあり、その交点にはそれぞれの見出しに対応する値がある。
リスト形式:
・「 B列にクロス集計表の1列目の値、「 C列 」にクロス集計表の1行目の値、「 D列 」にクロス集計表の値を入れる。
全体的な指針
・変数の宣言は使用する直前に行う。これは、変数の宣言を漏らさないためである。
・日本語でコメントをいれる。
・コードの最初に画面の更新と警告の表示を停止し、コードの最後で画面の更新と警告の表示を再開する。
留意点: ・クロス集計表の、1列目の見出しの値が「 総計 」の場合は、転記しない。 ・クロス集計表の、1行目の見出しの値が「 総計 」の場合は、転記しない。

 

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

 

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

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

 

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

 

ChatGPTの回答

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

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

    ' シートを指定
    Dim wsCross As Worksheet
    Set wsCross = ThisWorkbook.Sheets("クロス表")
    Dim wsList As Worksheet
    Set wsList = ThisWorkbook.Sheets("リスト表")

    ' リスト表の初期化
    wsList.Cells.ClearContents

    ' 見出しを設定
    wsList.Range("B1").Value = "商品"
    wsList.Range("C1").Value = "店舗"
    wsList.Range("D1").Value = "在庫数"
    wsList.Range("B1:D1").Interior.Color = wsCross.Range("B2").Interior.Color

    ' データをリスト形式に変換
    Dim i As Long, j As Long, k As Long
    k = 2
    For i = 3 To wsCross.Cells(Rows.Count, 2).End(xlUp).Row
        For j = 3 To wsCross.Cells(2, Columns.Count).End(xlToLeft).Column
            If wsCross.Cells(i, 2).Value <> "総計" And wsCross.Cells(2, j).Value <> "総計" Then
                wsList.Cells(k, 2).Value = wsCross.Cells(i, 2).Value
                wsList.Cells(k, 3).Value = wsCross.Cells(2, j).Value
                wsList.Cells(k, 4).Value = wsCross.Cells(i, j).Value
                k = k + 1
            End If
        Next j
    Next i

    ' データを並び替え
    wsList.Range("B1:D" & k - 1).Sort Key1:=wsList.Range("D2"), Order1:=xlAscending, Header:=xlYes

    ' 罫線を入れる
    wsList.Range("B1:D" & k - 1).Borders.LineStyle = xlContinuous

    ' リスト表をアクティブにする
    wsList.Activate

    ' 画面の更新と警告の表示を再開
    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コードを作成するプロンプトの書き方