以前、別記事で、文字列操作と正規表現の記事を載せたことはあるのですが、そちらは、VBのコードで正規表現検索や置換を行うためのコードを公開していました。
今回は、エクセルで正規表現検索を行うツールを作成したので、こちらのページに公開します。
ExcelがPC内にインストールされているWindows PC環境で動作します。
この記事からダウンロード可能なマクロ有効ブックと検索したいエクセルファイルを開き、マクロが無効な標準ブック上を対象に検索可能です。
コンテンツの有効化やセキュリティの許可設定の他、下記の参照設定が必要です。
エクセルを起動すると上記の画面になります。ショートカットキー割り当てボタンを押すと、5行目のショートカットキーに正規表現検索が割り当たります。このブックが開いている間のみ有効です。正規表現検索を行いたい、標準エクセルファイルを開き、ショートカットキーで呼び出すか、マクロの実行から「検索_show」を選択して、「実行」ボタンを押せば、起動できます。
一番上の検索文字列に、正規表現の記号を使用した検索文字を入力します。
入力補助として、その下にある「正規表現記号の入力」のリストから選択すると、下記のような候補が表示されます。
「検索文字列に反映」ボタンを押すと、検索文字列の末尾にリストの記号が挿入されます。例えば一番上の「半角数値 \d」を選択後に、「検索文字列に反映」ボタンを押せば、上の検索文字列に「\d」が末尾に挿入されます。
このリストは、ユーザが編集可能です。マクロ有効ブックの「文字種別シート」に一覧を記述していて、そこからツールが読み込んでいます。自由に追加してください。
次に桁数(文字数)を指定します。
繰り返しが無い場合は、未入力でも構いません。必要なときに入力します。半角数値を表す\dだけなら1桁の半角数値の検索となり、半角アルファベット[a-z|A-Z]なら、1文字が検索対象となります。
検索したい桁数(文字数)が固定ならその、桁数(文字数)を「繰り返す桁数や文字数」のテキストボックスに記入する。
可変長であり、最小桁数と最大桁数が決まっているなら、カンマ区切りで設定する。
1桁(文字)以上で上限なしなら半角のプラス記号+を記入する。ツール上のラベル「・ 1文字以上の文字列又は1桁以上の数値なら+を入力」をクリックすることで、+記号を入力することも可能です。
検索文字列に反映ボタンを押せば、上の「検索文字列」末尾に挿入されます。
例えば、3桁の数値を検索したい場合、あらかじめ「\d」が検索文字列に記述されている状態で、繰り返し桁数に3を入力し、「検索文字列に反映」ボタンを押せば、検索文字列の末尾に「{3}」が入力され、検索文字列は、合わせて「\d{3}」となり、この状態で検索ボタンを押せば、3桁の数値を検索することができます。2桁から4桁を指定したい場合は、繰り返し桁数に「2,4」と入力して「検索文字列に反映」ボタンを押すと、検索文字列末尾に{2,4}が入力される。「\d{2,4}」で検索すると2桁、3桁、4桁の数値が検索にヒットします。ただし、注意事項として、正規表現は文字列として検索するため、仮に5桁の数値が存在する場合、「\d{2,4}」で検索すると5桁のうち、先頭の4桁は検出対象になります。ここで一致させたくない場合は、条件追加が必要です。例えば、「(\D|\b)\d{2,4}(\D|\b)」など。(\Dは数値以外を表し、\bは行頭、行末やスペースなど)ただこの場合も注意が必要で、数値の前後1文字も検出対象文字列となります。
最後に検索種別と検索範囲を指定します。
上の選択リストからは、「部分検索」「1セル内で完全一致検索」「単語検索」を選択できます。デフォルトは、「部分検索」にしています。「1セル内で完全一致検索」を選択すると、検索文字列を先頭文字(^)と末尾文字($)で囲んで、検索します。既に「検索文字列」で入力済みなら重複するので、「部分検索」を選んでください。
単語検索を選択した場合は、検索時に、検索文字列を\bと\bで囲んで、検索します。\bには、行頭や行末、スペースやタブなどが含まれます。
検索範囲は、表示中のシート、または、そのブック全体のどちらかを選択できます。
2024/06/12 Update
テキストボックスを検索範囲に含めることができるように追加対応しました。
図形内の文章すべてが対象となります。フローチャート内に文章の検索も可能です。
ツールは、起動したブックに紐づけられます。
検索結果画面は下記になります。
検索にヒットしたら、次を検索するか、置換するかになります。次を検索する場合は、同じセル内で残りの部分を検索するか、次のセルに進むかをラジオボタンから選択できます。
置換を行う場合、検索結果の文字列を使用したい場合は、置き換え文字列に記載の記号@@@を置換文字列に記述することでその部分が検索ヒット文字と置き換わります。置き換え文字は、変更可能です。
オプションには、全角→半角 変換や半角→全角 変換 等が選択できます。このオプションを使用する場合は、置換文字列内に検索ヒット文字列を使用する置き換え文字(@@@)を記入してから置換してください。下記からダウンロードしたエクセルファイルを起動し、コンテンツの有効化を行う。
Windows PCにインストールされているExcelで起動してください。
マクロの有効化手順については、こちらも参考にしてください。