|
▼Show さん:
データの取り出しには、大小は別にして負荷はかかりますね。
セル領域をメモリーに取り込む際に、負荷を減らす効果が期待できる方法の1つが
配列に取り込みことだと思います。たとえば
Variant型変数 = Range("A1:Z1000").Value
こうすれば、瞬時に 26000セルの値が 1000行、26列の2次元配列に格納されます。
Variant型変数 = ActiveSheet.UsedRange.Value
こうすれば、シート上の使用領域の矩形部分が取り込まれます。
取り込んだ後は、メモリー内ですから、1つ1つ処理してもセルを直接参照するより
負荷が、ぐ〜んと減りますが、正規表現を使うなら、できるだけまとめて処理したほうが
よろしいですよね。
いろいろ手立てはあると思います。
2次元配列の各行を1次元配列にして Join関数で文字列にすることもできると思いますし
それこそ、2次元配列内の各要素を、いったん1次元配列に収めて、どさっとJoinしてやれば
1つの文字列になりますので、正規表現チェックも1回ですみますね。
ただ、この場合、該当の抽出部分が、どのセルだったかということをどう把握するか、ここが
工夫のしどころだと思います。
具体的な要件を説明されれば、皆さんからグッドアイデアが寄せられると思います。
|
|