スポンサーリンク
Excelの検索機能で正規表現が使えないかな、と調べてみたときのメモを載せておきます。
とりあえず簡単に調べた結果をまとめると、
- Excelの検索機能などに正規表現はない
- VBAを使えば正規表現が使えるが、ちょっと検索したいだけなのにVBA使うのはコストが高い
- しかし、古くからあるExcelアドインがあって、それがExcel 2016でも引き続き使えた(最近もちゃんと更新されている)
- そしてとても便利。
- ただ実はWordなら正規表現が使えるのを発見(なんでExcelじゃぁ標準で使えないのさ)
となり、本命は正規表現検索アドインを利用する方法でした。
この正規表現検索アドインがとても便利だったので、その使い方も紹介します(なぜか公式の自動インストール手順が動作せず、手動インストールすることになったので、そのあたりの手順や挙動説明も含めて紹介します)。
目次
スポンサーリンク
Excel 2016の検索機能では正規表現検索できない
Excelのヘルプなどを調べる限り(日本語・英語)、検索機能で正規表現を使うことはできないようでした。
Wordの場合は、検索機能で正規表現が利用可能ですが、Excelの検索機能はそこまで高機能ではなく、設定項目の量が全く違いました。
Find and replace text by using regular expressions (Advanced) (引用元)
VBAならできる
stackoverflowに人気の回答があったのですが、そちらはVBA for Applicationsを使って、Microsoft VBScript Regular Expressions 5.5 を使え、というものでした。
Regular expressions are used for Pattern Matching.
To use in Excel follow these steps :
Step 1: Add VBA reference to "Microsoft VBScript Regular Expressions 5.5" (引用元)
最悪、よほどの理由があればこの方法でもよいわけですが、たまに検索で正規表現もしたい、という目的では大げさです。一応この選択肢の存在も覚えておけば良いかな、という程度で、探していたものとは違います。
アドインを使う
そんな中、もうちょっと手間と機能とのバランスの良い選択肢として、「アドインを使う」方法がありました。
実際に試してみて、おそらく今後Excelが正規表現検索機能を付けたとしても、突然個々までは便利にならないだろう、と思うくらい便利だったので、インストールがうまく行かなかったことも含めて、使い方を紹介しておこうと思います。
「正規表現検索」アドインを使ってみる
リンク先のページから、「正規表現検索3.38」をクリックして、excelre338.zipをダウンロードしました(※「試用」という表記があり、有料?無料?と思ってしまうかもしれませんが、無料(フリーウェア)で利用できるようです)。
ダウンロードが完了したら、公式ページで紹介されているインストール手順通り、右クリックから「すべて展開...」→「展開(E)」として、展開されたexcelreフォルダの中にある「excelre.xla」をダブルクリックして開きました。
なぜか何も起こらない
しかし、excelre.xlaをダブルクリックしても、Excel 2016は起動するものの、それ以上は何も起こりませんでした。
エラーが出てくれれば良いのですが、何も表示されないと困ってしまいます。どうやら、自動インストール機能が動いてくれていないようです。
「ファイル>オプション」を開いて、「セキュリティ センター>セキュリティ センターの設定(T)...」を開き、アドインの設定やマクロの設定などを確認しましたが、何も起こらず終了してしまうような設定は見当たりませんでした。少し変更してみても解決せず。ウイルス対策ソフトも疑ったのですが、そうでもなさそうでした。
手動インストールする
というわけなので、Excel 2016に、この正規表現アドインを手動インストールすることにしました。
Excelで、左上の「ファイル」タブ→「オプション」→「アドイン」と開いて、「設定(G)...」をクリックしました。
すると、「アドイン」という小さいウィンドウが表示されるので、「参照(B)...」をクリックします。
すると、アドインファイルの選択ダイアログが表示されるので、先ほど展開した「excelre」フォルダを表示します。
しかし、ここでどういうわけか、ファイル形式として「アドイン(*.xlam、*.xla、*.xll)」が選択されているのにもかかわらず、「excelre.xla」が選択できない、という問題が発生しました(この時点で何かがおかしい?)。
そこで、「すべてのファイル (*.*)」を選択してから「excelre.xla」を選択して、「OK」をクリックしました。
特にエラーなくアドインは読み込まれ、次の通り「Excelre (Find and replace dialog by regular expression)」が有効状態になったため、「OK」をクリックして閉じました。
すると、「正規表現検索」から「インターネット通信系の機能を全て有効にしますか?」と聞かれたので、「はい(Y)」を選択しました。
インストールが完了しました。
Ctrl+Rで正規表現検索ダイアログを表示します。
と表示されて、手動インストールは完了しました。
正規表現で検索する
インストールがなんとか完了したので、実際に使ってみました。
検索したいExcelファイルを開いた状態で、「Ctrl+R」(もしくは、「右クリック>正規表現検索」)とすると、「正規表現検索」ウィンドウが開きました。
そこで、試しに正規表現を入力して「すべて選択」や「次を検索」をしてみると、無事正規表現での検索が実行されました。
正規表現で置換する
「置換」タブを選択して、「検索する文字列」と「置換後の文字列」を入力して「すべて置換(I)」を実行すると、ちゃんと正規表現による置換が行われました。
※一度間違えて置換してしまって、Ctrl+Zでは戻らなかったのですが、正規表現検索自体に「元に戻す(U)」ボタンがあり、それを使うことで、元に戻すこともできました。
その他の機能
他にも、正規表現を使ってExcelファイルの中身を検索する「Grep」機能や、複数ファイルをまたいでファイルの中身の置換まで行う「Grep置換」機能もあるようでした。
Excelで直接使える正規表現検索はとても便利!
正規表現での検索や置換が手軽にできて便利です。
今までCSVを経由して置換していたり、VBAを自分で書いて置換していたのであれば、このアドインを使うことをおすすめします(会社で使うとなると、セキュリティ上利用できないケースも多いかも?)。
標準機能になってくれれば良いのですが、このアドインももう10年近く利用されているらしく、もうExcelは対応してくれないかもしれませんね。ちょっと期待できません。。。
スポンサーリンク
スポンサーリンク