Excelで正規表現を使って置換するためのマクロについて、メモ
今日仕事でいつものようにエクセルを使っているとき、エクセルってワイルドカード使えんかったっけ、とふと思い、ググった。 で、実はエクセルはごくごく限られたワイルドカードしかサポートしていなくて、ワードみたいにあれこれできんのだった。
みんなエクセル文書はありふれているというのに、置換がまともにできないのは非常に不便ではないだろうか。
なので、VBAからRegexのインスタンスを立ち上げて、セルをループしてやって置換すればいいと思った。
ざっくりした手順: 1.UsedRangeを変数に入れる 2.UsedRange変数をループして、中身と行列番号を多段配列とかその他の配列っぽいやつに収める 3.配列をループして、Whatを探し、見つかったらRegexの関数をCallして置換し、置換した文字列を返して、配列の行列番号から元のセルを参照してValueプロパティに戻してやる。
2は、高速化のためだ。1のRangeをループして3をやると、たぶんすごく遅い。全部配列に読み込んでからループすればかなり速くなる。
エクセルでこれができたらかなり便利になると思う。