伊田生活ブログのロゴ
HOME  >  勉強
カテゴリー : 勉強 - メモ
•プロンプト •ChatGPT •VBA •文例
公開日:

プロンプトの構造を考える:ハッシュマークとトリプルクォートを活用


ハッシュマークとトリプルクォートを使用して生成AIにプロンプトを送る方法を考えます。

シートはもともと、以下のように、B列に地名が、C列に名前が記入されています。

なお、この記事ではExcel ではなく、LibreOffice の Calc を使用しています。

image 1

[ 画像1. 元のシート ]

 

ChatGPT に以下のプロンプト(生成AIに指示するための文章)を送ってみました。

[プロンプト]
-----

以下の #処理 を実現するVBAのコードを書いてください。

#前提条件:
"""
•B2からB4には地名が記入されている。
•C2からC4には氏名が記入されている。
"""

#処理:
"""
•B2からB4を検索し、「東京」という地名を探す。
•「東京」が見つかったら、その右隣の氏名の背景を黄色にする。見つからなかったら、「東京は見つかりませんでした。」と表示する。
"""

#制約条件:
"""
•LibreOfficeのVBAでも動作するように、オブジェクトはできるだけ使用しないで、シンプルな構成で記述すること。
"""

-----

ChatGPT は以下のコードを書いてくれました。

Option VBASupport 1

Sub HighlightTokyo()
    Dim ws As Object
    Dim i As Integer
    Dim found As Boolean
    found = False

    ' シートを取得
    Set ws = ThisComponent.Sheets(0) ' 1枚目のシートを参照

    ' B2からB4を検索
    For i = 2 To 4
        If ws.getCellByPosition(1, i - 1).String = "東京" Then
            ' 隣のセル(C列)の背景色を黄色にする
            ws.getCellByPosition(2, i - 1).CellBackColor = RGB(255, 255, 0)
            found = True
        End If
    Next i

    ' 見つからなかった場合のメッセージ
    If Not found Then
        MsgBox "東京は見つかりませんでした。"
    End If
End Sub

なお、1行目の「Option VBASupport 1」という記述だけは私が書きました。

このコードを実行すると、シートの「東京」の右隣の「スズキ」に、下図のように色が付きました。

image 2

[ 画像2. 実行結果 ]

 

#プロンプトで指定した通り、東京の右隣のセルに色が付きました。ただ、プロンプトでは「黄色」と書きましたが、実行結果は水色に見えます。コードでは「RGB(255, 255, 0)」となっているので黄色になってもよさそうですが、結果は水色に見えます。原因は不明ですが、色が変わったので、コードの動作確認はここまでとします。(環境による違いの可能性がある。)

LibreOffice の Calc は Excel とはちょっと使い心地が違います。個人的には Excel のほうが使いやすいですが、無料で利用できる LibreOffice を私はプライベートでは使用しています。

プロンプトの構成

このプロンプトは、以下のような構成で書いています。

  • データは、トリプルクォート(""")で区切る。
  • データの見出しには、ハッシュマーク(#)を付ける。
  • 見出しの末尾には、コロン(:)を付ける。(だたし、本文内に見出し文字列を記入する場合には、付けない。)
  • 指示文は、箇条書きで記述する。
構成の狙い
  • データの範囲(どこからどこまでが1つの情報のまとまりなのか)を明確にすること。:
    トリプルクォートで囲んだ部分を1つのブロックとすることで、プロンプト内の情報の境界が明確になる。さらに、ハッシュマークを利用した見出しで、そのブロックに名前を付けることができる。

ハッシュマーク(#)を使う方法は有名ですが、トリプルクォート(""")を使う方法も、現在 広く使われているようです。

構成の形を図示すると以下のようになります。

プロンプトの本文

#見出し1: 
"""
•指示文1-1
•指示文1-2
"""

#見出し2: 
"""
•指示文2-1
•指示文2-2
"""

まとめ

ハッシュマーク(#)とトリプルクォート(""")を使用してプロンプトを書いてみました。「どこからどこまでがデータのまとまりなのか」を示すために、ハッシュマークやトリプルクォートなどの記号を使用しています。また、本文の中であるデータに言及するとき、どのデータを指しているのかが分かりやすくなると思います。

参考