クソみたいなexcelのfind関数の代わりにつかってくれ。
他マクロからの呼び出しやワークシート関数として使える。
ただし、検索できるのはソース文字列(orセル)中で最初にマッチした1件のみ。複数検索したいヤシは、For Eachループ内のmatchオブジェクトをナンとかしてくれ。ワークシート関数の体をなしたままだと何かとメンドーそーだ。
使い方
=RegExp(<検索対象>,<正規表現パターン>,<"S" or "P" or "L">)
ex.
=RegExp(C4,"「.*」","S")
C4セルの中からかぎ括弧で囲まれた文字列を探す。
=RegExp("日月火水木金土",C4,"P")
C4セルに書かれた文字を曜日並びから検索し、何個目の曜日なのか、文字位置を返す。
=RegExp(C4,"(YES|NO)","L")
C4セルに書かれた文字が"YES"なら"3"、"NO"なら"2"のようにマッチした文字数を返す。
他マクロからの呼び出しやワークシート関数として使える。
ただし、検索できるのはソース文字列(orセル)中で最初にマッチした1件のみ。複数検索したいヤシは、For Eachループ内のmatchオブジェクトをナンとかしてくれ。ワークシート関数の体をなしたままだと何かとメンドーそーだ。
使い方
=RegExp(<検索対象>,<正規表現パターン>,<"S" or "P" or "L">)
ex.
=RegExp(C4,"「.*」","S")
C4セルの中からかぎ括弧で囲まれた文字列を探す。
=RegExp("日月火水木金土",C4,"P")
C4セルに書かれた文字を曜日並びから検索し、何個目の曜日なのか、文字位置を返す。
=RegExp(C4,"(YES|NO)","L")
C4セルに書かれた文字が"YES"なら"3"、"NO"なら"2"のようにマッチした文字数を返す。
Macroのつぼ
WSH等で使われるComモジュールのRegExpをExcelから呼び出している。
残念な事に、"L","P"を指定したときに返ってくる数値は文字型だ。
まっとうに使いたいヤシは、改造して、直接マクロから呼びだすべし。
マクロ作るのメンドーで、ワークシート関数でナントカしたいヤシ、そのまま使ってくれ。アドイン(.xla)で作った方がイイと思う。
WSH等で使われるComモジュールのRegExpをExcelから呼び出している。
残念な事に、"L","P"を指定したときに返ってくる数値は文字型だ。
まっとうに使いたいヤシは、改造して、直接マクロから呼びだすべし。
マクロ作るのメンドーで、ワークシート関数でナントカしたいヤシ、そのまま使ってくれ。アドイン(.xla)で作った方がイイと思う。
0 件のコメント:
コメントを投稿