Excel業務では、日付の抽出、数字の取得、特定パターンの検索、不要文字の削除など、文字列処理が多く発生します。しかし、Excel標準の関数だけでは複雑なパターンに対応できないことがあり、IF・LEFT・MID・SUBSTITUTE を組み合わせても処理が冗長になりがちです。
こうした場面で圧倒的に便利なのが正規表現(RegExp)です。
複雑な文字列パターンを一度で抽出・置換でき、業務効率を飛躍的に高めます。しかし、正規表現の書き方は専門的で、VBAでの使用方法(参照設定、オブジェクト生成、Pattern構文など)まで含めて理解しようとするとハードルが高いのが実情です。
そこで役立つのが ChatGPTを使って正規表現VBAを作成する方法 です。
ChatGPTは、抽出したい文字列の条件を自然文で伝えるだけで、最適な正規表現パターンを生成し、さらに VBA コードとして安全に実装してくれます。
この記事では、ChatGPTを活用して“RegExpを使ったVBA”を作成する手順、プロンプト例、背景解説、注意点、実務で使える応用例を詳しく紹介します。
目次
- ✅ ChatGPTでRegExpを使うVBAを作成する基本ステップ
- ・正規表現VBAで最も重要なのは「抽出したい内容の説明」
- ・VBAへの組み込みも自動で可能
- ✅ ChatGPTでRegExp VBAを作成するための最強プロンプト
- ・基本プロンプト例
- ・条件を増やしたプロンプト例
- ✅ ChatGPTでRegExpを使うVBAを作成する手順(詳細)
- ・ステップ①:抽出したいパターンを「自然文」で伝える
- ・ステップ②:処理範囲を指定する
- ・ステップ③:出力方法を伝える
- ・ステップ④:高速化やエラー対策を指示する
- ✅ RegExpを使ったVBAコードの構成をChatGPTに書かせる
- ・RegExpの基本構造を自動生成させる
- ・Matchesループの構造も完璧に作れる
- ✅ ChatGPTで作れるRegExp VBAの実務例(用途別)
- ・実務例①:郵便番号抽出
- ・実務例②:メールアドレス抽出
- ・実務例③:数字だけ取り出す
- ・実務例④:カタカナ抽出
- ・実務例⑤:電話番号の抽出・変換
- ・実務例⑥:余計な文字・記号の削除(置換)
- ✅ ChatGPTに正規表現パターンを「解説」させる方法
- ✅ RegExp VBAを作成するときの注意点(ChatGPTに依頼できる)
- ・IgnoreCase の設定
- ・Global の設定
- ・無限ループや空欄処理は必ず依頼する
- ・高速化や見やすさもChatGPTに任せる
- ✅ まとめ:ChatGPTを使えば正規表現VBAは“誰でも簡単に作れる”
✅ ChatGPTでRegExpを使うVBAを作成する基本ステップ
・正規表現VBAで最も重要なのは「抽出したい内容の説明」
ChatGPTは、抽出したい文字パターンを日本語で説明するだけで正規表現を組み立てることができます。
例:
「文字列の中から 000-0000 形式の郵便番号だけ抽出したい」
ChatGPTは即座に以下のパターンを生成します。
[0-9]{3}-[0-9]{4}
これをVBA用のRegExpコードに組み込み、
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "[0-9]{3}-[0-9]{4}"
reg.Global = True
reg.IgnoreCase = True
という形で完成させます。
・VBAへの組み込みも自動で可能
RegExpは標準機能ではないため、VBAでは「CreateObject」を使った手動実装が必要ですが、これもChatGPTが正確に生成できます。
✅ ChatGPTでRegExp VBAを作成するための最強プロンプト
・基本プロンプト例
この文字列の中から、数字だけを抽出するVBAを正規表現(RegExp)を使って作成してください。
ChatGPTは以下の形式で生成します。
Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "\d+"
reg.Global = True
・条件を増やしたプロンプト例
メールアドレスの形を抽出し、シートのA列からB列へ写すVBAを
正規表現(RegExp)で作成してください。
ChatGPTは以下のような完全なマクロを生成します。
- Pattern生成
- Matchesの使い方
- 対象範囲のループ
- エラー対策
ChatGPTは日常業務レベルの文字処理を全自動で作れます。
✅ ChatGPTでRegExpを使うVBAを作成する手順(詳細)
・ステップ①:抽出したいパターンを「自然文」で伝える
例:
「文章の中から日付(yyyy/mm/dd形式)だけ取り出したい」
ChatGPTはパターンを判断します。
[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}
・ステップ②:処理範囲を指定する
例:
「A2:A200 の範囲のセルごとにパターンを抽出して C列に出力したい」
ChatGPTは For Each ループ付きコードに変換します。
・ステップ③:出力方法を伝える
例:
- 最初の一致だけ
- 全一致をまとめて出力
- 見つからない場合は空欄
ChatGPTは出力ロジックを構築します。
・ステップ④:高速化やエラー対策を指示する
高速化のためにWith構文、ScreenUpdating Offを使用してください。
ChatGPTは実務用の安全なマクロに調整します。
✅ RegExpを使ったVBAコードの構成をChatGPTに書かせる
・RegExpの基本構造を自動生成させる
ChatGPTが生成する典型的な構造は以下の通りです。
Dim reg As Object
Dim matches As Object
Dim m As Object
Set reg = CreateObject("VBScript.RegExp")
With reg
.Pattern = "パターン"
.Global = True
.IgnoreCase = True
End With
・Matchesループの構造も完璧に作れる
Set matches = reg.Execute(text)
For Each m In matches
Debug.Print m.Value
Next
ChatGPTはこの一連の構造を間違えずに組み立てられるため、初心者でも安心です。
参考:【VBA】セルの値が一致したら処理を実行する方法|If文・ループ・実務活用例
✅ ChatGPTで作れるRegExp VBAの実務例(用途別)
・実務例①:郵便番号抽出
文章から「000-0000」形式だけを取得。
参考:【Excel】【VLOOKUP活用】住所から郵便番号を自動入力する方法|実務向け手順と注意点
・実務例②:メールアドレス抽出
業務上、顧客リストからメールだけ取り出したいときに使える。
・実務例③:数字だけ取り出す
金額列に単位(円・%)が混在していても抽出できる。
・実務例④:カタカナ抽出
問い合わせ内容などテキストデータの分析に便利。
・実務例⑤:電話番号の抽出・変換
複数の形式に対応した正規表現もChatGPTなら生成可能。
・実務例⑥:余計な文字・記号の削除(置換)
半角・全角の統一にも活用できる。
✅ ChatGPTに正規表現パターンを「解説」させる方法
正規表現は複雑で読みにくいため、ChatGPTに説明させることで理解が進みます。
この正規表現の意味を解説してください。
例:
“\d{4}-\d{2}-\d{2}”
ChatGPTは
- \d → 数字
- {4} → 4桁
- → ハイフン
という形で分解して説明してくれます。
- → ハイフン
✅ RegExp VBAを作成するときの注意点(ChatGPTに依頼できる)
・IgnoreCase の設定
大文字小文字を無視したい場合:
reg.IgnoreCase = True
・Global の設定
複数取得したい場合:
reg.Global = True
・無限ループや空欄処理は必ず依頼する
一致がない場合は空欄を返す仕様にしてください。
・高速化や見やすさもChatGPTに任せる
With構文を使って短く書いてください。
✅ まとめ:ChatGPTを使えば正規表現VBAは“誰でも簡単に作れる”
最後に、記事内容を整理します。
- ChatGPTは正規表現(RegExp)のパターン生成が非常に得意
- 抽出したい文字パターンを“自然文で説明するだけ”で正規表現VBAが完成する
- VBAで必要なCreateObject、Pattern設定、Matchesループも自動生成できる
- 数字抽出・メール抽出・日付抽出など実務で使える処理をすぐ実装可能
- 正規表現の解説もChatGPTに依頼できるため、理解しながら利用できる
- 複雑な文字処理はRegExpで処理速度が格段に向上する
- ChatGPTを活用すれば、難しい文字列処理でも安全・高速に実装できる
ChatGPTを取り入れれば、正規表現(RegExp)を使った高度なVBA処理も短時間で作成でき、業務効率を大きく改善できます。ぜひ実務に取り入れ、複雑な文字処理を自動化してみてください。