VBAで正規表現を用いたデータ置換の自動化と活用例

目次

概要

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

コード解説

  1. CreateObject(“VBScript.RegExp”)
    VBAから正規表現機能を利用するために、VBScriptのRegExpオブジェクトを作成します。
  2. Globalプロパティ
    True に設定することで、文字列内のすべての一致箇所を対象にします。
  3. Patternプロパティ
    正規表現のパターンを設定します。例として \D は「数字以外の全ての文字」を意味します。
  4. Replaceメソッド
    指定したパターンに一致する文字を、任意の文字列に置き換えます。今回は空文字に置換し、数字だけを残します。
  5. 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代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次