すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

実際の業務や学校で、VBA(エクセルVBA)をコーディングする上で、高速化の工夫等を具体例とともにおしえていただけますか?

例)
エクセルファイルに計算結果を出力する作業がfor文を多数利用しており、非常に計算結果の描画に時間がかかっていました。これを解消するために、エクセルの再描画を一旦停止して処理を高速化する工夫をしました。

###コーディングサンプル

Application.ScreenUpdating = False

'ループ処理中は、上の再描画停止
    For i = 1 To 100
      Cells(i, 5) =Cells(i,10)
    Next

'ループ終了後は以下の再描画開始

Application.ScreenUpdating = True

以上です。
考え方やコーディングの勉強をしたいです。

  • 質問者:プログラマ
  • 質問日時:2009-04-19 14:40:07
  • 0

並び替え:

ポピュラーな処では、
文字列の関数では、”$”付の関数を使うと、
極端な話、約2倍程度(高速に)の差があります。
例) Left$、Mid$、など等。
($付き関数は、VBA ヘルプ:「関数からの文字列の取得」に説明があります)

後は、文字列の連結に”&”演算子を多用すると、遅くなります。
(ループ処理内で、&演算子が沢山あると、目に見えて遅いけれど
 そうでなければ、大差ないかな?)
Join関数で連結するか、もしくは Midステートメント(Mid関数では無いです)
で連結文字を置換していく方法が有名です。

  • 回答者:えんじ (質問から57分後)
  • 0
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る