無料のノーコードアプリで、簡単にVBAコードを作成

AI(ChatGPT)で自分の価値を高める😊

MENU

VBA作成プロンプトの書き方

事例

店舗が「世田谷」で賞味期限が「2024/07/07」以降でフィルターし、結果をコピーする事例です。

 

プロンプト

下記の処理の概要に沿ったVBAコードを作成できますか?
マクロ名:デモ 概要: 
指定したセル範囲を、「 2つ 」の条件でフィルターし、その結果をコピーする。 手順: ・「 Sheet1 」シートのセル範囲「 A1 」セルから「 D1 」セルの最終行のセルまでを選択する。 ・選択した範囲にオートフィルタを適用する。 ・選択した範囲の「 1列目 」を「 世田谷 」、および「 4列目 」を「 2024/07/07 」より大きい日でフィルターする。 ・フィルタリングされたデータをすべて(値だけでなく、書式も含む)コピーし、「 Sheet1 」シートの「 G1 」セルに貼り付ける。 ・コピー状態を解除する。 ・フィルタを解除する。 全体的な指針: ・変数の宣言は使用する直前に行う。これは、変数の宣言を漏らさないためである。 ・日本語でコメントをいれる。 ・コードの最初に画面の更新と警告の表示を停止し、コードの最後で画面の更新と警告の表示を再開する。

 

プロンプトの構成

マクロ名⇒ 概要⇒ 手順⇒ 全体的な指針⇒ 留意点

明確さと理解しやすさ:プロンプトが明確で、読み手が理解しやすいことが重要です。そのため、関連する情報は一緒にグループ化します。また、冗長な表現を避け、必要な情報だけを提供します。

重要性と優先順位:最も重要な情報は先に記載します。これにより、読み手は最初に重要な情報を把握できます

プロンプトが”あいまい”になる原因と対策

幾度となく、正しいコードが引き出せなかった経験を列記しました。

エラー原因1 文書形式と不要な情報

Excelのsheet1に売上データがあります。項目はA列からH列にかけて、伝票番号、販売日、店舗名、商品名、入数、数量、単価、金額の順です。A2セルから下の行にデータが入力されており、この中でB列の販売日が20230724になっている行を黄色にするためのVBAコードを作成してください。

上のプロンプトも、正しいコードが出力されます。

しかし、文書形式と不要な情報は、曖昧になりがちです。

そこで、要件を箇条書きにします。

VBAコードを作成してください。
要件は下記の通りです:

・対象シートは"Sheet1"
・対象セルは"a2"セルから"h2"セルを上端とする表の最終行まで
・B列の値が'20270724'と等しい行に限り、セルの色を黄色にする

箇条書きの宣言は「要件は下記の通りです:」で行い、末尾はコロン(:)です。

 

エラー原因2 主語が無い

プログラムコードは主語("シート”、”セル”)が必須です。

 

エラー原因3 対象シートを指定していない

プロンプトに「”●●”シートを選択する」指示をいれます。

マクロを実行するとき、偶然、処理対象でないシートがアクティブだと、そのシートで処理で始まり、対象でないシートが破壊されます😢。

 

対策1 同一処理と、別処理は明示する

箇条書きは、それぞれの行の関係が不明になりがちです。

・対象セルをコピーし、"全社"シートの最終行の一つ下のセルにを貼り付ける
"全社"シートの最終行が"A1"セルのときは"A1"セルに貼り付ける
・上記の処理がすべて終わったら、"全社"シートを選択する

そこで、箇条書きごとに主語を明示し、従属関係を明らかにします。

 

対策2 効果的に読点(、)を使う

読点の有無や場所で、ChatGPTの誤読が改善します。

 

対策3 主語の整理

プロンプトの主語には”セル”をたくさん使います。

ChatGPTが理解しやすいように"対象セル"、"選択したセル"、"そのセル"などで対象セルを明示します。

 

対策4 トピックを分ける

プロンプトが長く”あいまい”だと、ChatGPTがユーザーと異なる解釈をします😵‍💫。

プロンプトが長いときは、トピックを分けて、コードを複数作成します。

 

複数のコードに分かれても、それらを”連続実行”することができます。

 

対策5 概要をいれる

概要を入れると、内容が”あいまい”でも、ChatGPTが概要から内容を推測してくれます。概要は、”処理の概要は「●●●する」ものです”を入力します。

 

対策6 文章を極力短く

プロンプトを何度も読み直し、不要な言い回しを削ります。

削ることにより、不足している主語シートの指定漏れを見つけることができます。

対策7 引用するとき

引用対象に番号を振る

・(1) はカンマで区切られた複数のマクロ名です。この順番でマクロを連続して実行するコードを作成してください。
 ・(1) 処理1,処理2,処理3

上の例は、3行目にの冒頭に空白をいれて、前の行に従属していることを示します。

 

コロン(:)を付けて主従関係を示します。

コロン(:)の後ろで改行します。

A はカンマで区切られた複数のマクロ名です。この順番でマクロを連続して実行するコードを作成してください。
A:
処理1,処理2,処理3

AのコードとBのコードを比較し、違う箇所をおしえてください。
A:

コードAを書く

B:
コードBを書く

 

Bingにコードを貼り付けるとき

 

会話のスタイルを「より厳密に」を必ず選択してください。

より創造的に」になっている場合は、創造的なコードが作成されます。

 

Bingよるリファクタリング・コード修正

リファクタリング

コード修正

ChatGPTで関数の意味を調べる