概要
Excel VBAでは、正規表現(RegExp)を用いることで、高度な文字列の検索・置換を効率的に行うことが可能です。本記事では、特定のパターンに一致する文字を一括で削除・置換する方法を紹介し、活用できる正規表現パターンの例もあわせて解説します。
サンプルコード
Sub ReplaceWithRegExp()
Dim regObj As Object
Dim targetCell As Range
' 正規表現オブジェクトを作成
Set regObj = CreateObject("VBScript.RegExp")
regObj.Global = True
regObj.Pattern = "\D" ' 数字以外を対象にする
' 対象範囲のデータを変換
For Each targetCell In Range("B2:B6")
targetCell.Offset(0, 1).Value = _
regObj.Replace(StrConv(targetCell.Value, vbNarrow), "")
Next
End Sub
コード解説
- CreateObject(“VBScript.RegExp”)
VBAから正規表現機能を利用するために、VBScriptのRegExpオブジェクトを作成します。 - Globalプロパティ
Trueに設定することで、文字列内のすべての一致箇所を対象にします。 - Patternプロパティ
正規表現のパターンを設定します。例として\Dは「数字以外の全ての文字」を意味します。 - Replaceメソッド
指定したパターンに一致する文字を、任意の文字列に置き換えます。今回は空文字に置換し、数字だけを残します。 - StrConv関数
半角・全角変換などを行う関数です。例ではvbNarrowを指定し、半角に統一しています。
よく使う正規表現パターン一覧
| パターン | 意味 |
|---|---|
[ABC] | AまたはBまたはC |
[^ABC] | A・B・C以外 |
? | 直前の文字が0回または1回出現 |
* | 直前の文字が0回以上出現 |
+ | 直前の文字が1回以上出現 |
^ | 行頭に一致 |
$ | 行末に一致 |
\n | 改行(LF) |
\r | 改行(CR) |
\t | タブ |
\d | 数字(0〜9) |
\D | 数字以外 |
\s | 空白文字 |
\S | 空白以外の文字 |
\ | エスケープ |
() | グルーピング |
$1, $2 | キャプチャグループの参照 |
応用例
- 電話番号や郵便番号からハイフンを削除
- 英数字以外の記号を一括除去
- 特定のキーワードを含む文章を抽出
- 日付形式の整形
まとめ
正規表現を活用すれば、複雑な文字列の処理も簡潔に記述できます。特に、大量のデータを一括変換する業務では、VBAと正規表現の組み合わせが非常に有効です。検索パターンを工夫することで、データクレンジングやフォーマット統一など、さまざまな場面で応用できます。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
