Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37503 / 76732 ←次へ | 前へ→

【44394】Replace関数の処理速度の変化について
質問  なば  - 06/11/14(火) 21:07 -

引用なし
パスワード
   はじめまして。
Replace関数の処理速度の変化について質問させてください。
よろしくお願いします。

今、1500行×200列ほどの範囲に、1セル10〜50文字(改行なし)のデータが入ったシートを扱っています。
このシート内の全セルに対して、半角カタカナを全角カタカナに変換する処理を行っています。
このときにReplace関数を使っています。

文字コード166〜221までが濁点、半濁点を除いた半角カタカナなので、
 Dim lngCode as Long 'ループカウンタ
 Dim rngRange as Range '処理対象範囲
 Dim strHankaku as String '半角カタカナ
 Dim strZenkaku as String '全角カタカナ

 for lngCode = 166 to 221
  strHankaku = chr(lngCode) '半角カタカナ
  strZenkaku = strConv(strZenkaku) '全角カタカナ

  '全角→半角変換
  rngRange.Replace what:=strHankaku, Replacement:=strZenkaku, _
   LookIn:=xlFormulas, MatchCase:=False, Matchbyte:=True
 next
といった具合のループを組んでいます。

この処理を行うとき、Activateを使ってシートを表示させた場合と
シートを表示させなかった場合とで処理時間に大きな差が出ます。

シートを表示させた場合は上記のループが5分もかからずに終了するのですが、
シートを表示させなかった場合は、ループ1回につき30秒、終了までに20分以上かかってしまします。

この処理時間の差の原因をご存知の方がいらっしゃいましたら、
教えていただけませんでしょうか。

ちなみに実行環境はWindows2000、Excel2000で、CPUは1GHz程度、メモリは512MBです。

よろしくお願いしますm(__)m
0 hits

【44394】Replace関数の処理速度の変化について なば 06/11/14(火) 21:07 質問
【44395】Re:Replace関数の処理速度の変化について なば 06/11/14(火) 21:20 発言
【44406】Re:Replace関数の処理速度の変化について Jaka 06/11/15(水) 10:37 発言
【44409】Re:Replace関数の処理速度の変化について なば 06/11/15(水) 15:50 質問
【44410】Re:Replace関数の処理速度の変化について りん 06/11/15(水) 17:40 発言
【44440】Re:Replace関数の処理速度の変化について なば 06/11/16(木) 12:03 お礼

37503 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free