Excel VBA質問箱 IV

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

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


4618 / 76735 ←次へ | 前へ→

【77735】処理速度の向上
質問  おさむ  - 15/12/11(金) 13:24 -

引用なし
パスワード
   EXCELのセルに入力されている文字の文字色、サイズなどを判別しなくてはいけません。
Charactersを使用するので処理速度が遅くなるのはしょうがないとあきらめています。

ただ、下記のプログラムをブックを開いてすぐに実行する場合と
ブックを開いて何処でもいいからセルの文字を編集してから実行する
のでは処理速度が違います。

前者の処理速度:50秒
後者の処理速度:18秒

この理由が判りません。
この理由をEXCELの仕様だからと無理矢理に納得したとして、この仕様を
利用して処理速度を早くさせる方法はあるのでしょうか?

前提としてA列の1行から1000行までのセルに全て1000文字入力しています。

Private Sub cmdInput_Click()
  Dim StartTime As Variant
  Dim StopTime As Variant
  Dim lCnt As Long
  Dim lNum As Long
  
  StartTime = Time
  
  For lNum = 1 To 10000
    For lCnt = 1 To ActiveSheet.Cells(lNum, 1).Characters.Count
    Next
  Next
  
  StopTime = Time
  StopTime = StopTime - StartTime
  
  MsgBox "処理時間:" & Minute(StopTime) & "分" & Second(StopTime) & "秒"
End Sub

例えばこのStartTime = Timeの前にプログラムでセル編集しても遅いままでした。
また、SendKeys "{F2}", TrueをStartTime = Timeの前に記述しても遅いままでした。

宜しくお願い致します。

0 hits

【77735】処理速度の向上 おさむ 15/12/11(金) 13:24 質問[未読]
【77737】Re:処理速度の向上 γ 15/12/12(土) 10:00 発言[未読]
【77744】Re:処理速度の向上 おさむ 15/12/14(月) 10:33 発言[未読]

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