変換表を使い複数の文字列を置換する
右にある変換表を使い、左の日本語を、英語に置換します。
ChatGPTのプロンプト
Replaceメソッドを使って、以下のVBAコードを作成できますか? マクロ名は「 デモ 」とする。また、日本語でコメントをいれる。 概要:特定の範囲内の文字列を変換表を使い置換する。 手順: ・「 Sheet1 」シートの「 E1 」セルから「 F11 」セルまでの範囲の文字列を、変換表として2次元配列で読み込む。 ・「 Sheet1 」シートの「 A1 」セルから最終行までの範囲内の各セルについて、変換表の左列「 E列 」の値を右列「 F列 」の値に置換する。 ・コードの最初に画面の更新と警告の表示を停止し、コードの最後でそれらを再開する。
(ポイント1)上の「プロンプトをコピーする」ボタンで、コピーできます。
(ポイント2)ChatGPTに貼り付けて、緑色の単語を、あなたの処理に合わせて修正します。内容の削除や追加もできます。
(注:プロンプトの全てを読む必要はありません。緑色の行のみ集中して読み、修正してください)
(ポイント3)会話のスタイルは、「より厳密に」を選択します。
(ポイント4)プロンプトの改行は、ShiftキーとEnterキーを同時に押します。
ChatGPTの回答
もちろんです。以下に指定の条件に基づいたVBAコードを示します:
Sub デモ() ' 画面の更新と警告の表示を停止 Application.ScreenUpdating = False Application.DisplayAlerts = False ' 変換表を2次元配列に読み込む Dim 変換表 As Variant 変換表 = Worksheets("Sheet1").Range("E1:F11").Value ' 最終行を取得 Dim 最終行 As Long 最終行 = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row ' A1セルから最終行までの範囲内の各セルについて、変換表の左列の値を右列の値に置換する Dim i As Long, j As Long For i = 1 To 最終行 For j = 1 To UBound(変換表, 1) Worksheets("Sheet1").Cells(i, 1).Value = Replace(Worksheets("Sheet1").Cells(i, 1).Value, 変換表(j, 1), 変換表(j, 2)) Next j Next i ' 画面の更新と警告の表示を再開 Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
プロンプトを作成し、VBAコードを実行してみて! ChatGPT凄い!!😊
VBAマクロを無料のChatGPT(Microsoft Copilot)で作成します。
Copilot(https://copilot.microsoft.com)はログイン不要。すぐVBAマクロが完成します。