Excel VBA質問箱 IV

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

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


44980 / 76732 ←次へ | 前へ→

【36759】繰り返し処理が多いと、どうしてフリーズしていまうのでしょうか?
質問  カド  - 06/4/12(水) 16:54 -

引用なし
パスワード
   前回の質問では質問内容が2つあったため、一方の質問に回答が集中してしまい、こちらの回答が得られなかったので、繰り返しになりますが質問させてください。

下記のようなコードで繰り返しの処理を行うと、パソコンがフリーズしてしまいます。
最大5万回の処理を5万回繰り返すので、結局5万*5万回になります。
回数は多いにしても、処理そのものはひとつづつ順次に行われるものだと勝手に思っています。
このような場合、どうしてPCがフリーズしてしまうのですか?


Sub データ取得1個()
  Dim Count, aaa As Long
  
  
  Set ACELL = ActiveCell '検索元
  Set BCELL = ActiveCell.Offset(0, -3) '検索先
  
  aaa = 50000  ’←処理数が2000ならまったく問題ない。
  
  Count = 0
  Count1 = 0
  
  Do Until Count1 = aaa '検索元を100行実行
  
    Do Until Count = aaa 'データベース(検索先)を100行検索

      If ACELL = BCELL Then '見つかった場合
        ACELL.Offset(0, 1) = BCELL.Offset(0, 1) 'データの書き込み
       
        Count = 0 '検索先のデータ検索数
        Exit Do
      Else '見つからなかった場合
        Set BCELL = BCELL.Offset(1, 0) '検索先を次に変更
        Count = Count + 1 '検索先のデータ検索数
        
      End If
    Loop
    
    Set ACELL = ACELL.Offset(1, 0)
    Set BCELL = ActiveCell.Offset(0, -3)
   
   Count1 = Count1 + 1 '検索元のデータ検索数
   Count = 0
  Loop

MsgBox aaa & "個処理が終了しました。"
End Sub

0 hits

【36759】繰り返し処理が多いと、どうしてフリーズしていまうのでしょうか? カド 06/4/12(水) 16:54 質問
【36761】Re:繰り返し処理が多いと、どうしてフリー... Jaka 06/4/12(水) 17:15 発言
【36766】Re:繰り返し処理が多いと、どうしてフリー... カド 06/4/12(水) 21:02 お礼
【36767】Re:繰り返し処理が多いと、どうしてフリー... Hirofumi 06/4/12(水) 21:58 発言
【36770】Re:繰り返し処理が多いと、どうしてフリー... カド 06/4/13(木) 6:10 お礼

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