LoginSignup
0
4

More than 5 years have passed since last update.

備忘録:VBAではまったこと

Last updated at Posted at 2017-03-30

VBAを使ったCSV操作でハマったことのメモ

長時間マクロを動作させると途中で処理が終了しちゃう

仕事で20万行くらいのCSVファイルに対して一行ずつループ処理してると
なんのエラーや警告もなくVBAの処理が終わっちゃう現象が発生。

発生時の環境

OS:Windows 7 Professional
Office:Microsoft Offce 2010

原因

原因を調べてみたけど、よくわからなかった。
ただし、Microsoftのサイトで特定のOSとOfficeの組み合わせで発生することがわかった。

OSとExcelのバージョンがばっちり条件に当てはまってた...

回避策

Microsoftさんの言う回避策をとることに。
4つある回避策のうち、今回はDoEvents関数を使用する方法をとった。

For i = 1 In 10000
    Worksheets("Sheet1").Cells(i, 1).Value = i
    ....
    DoEvents
Next

こんな感じで、時間が掛かるループ処理の中でDoEvents関数を呼び出すだけ。
VBAが途中で停止することはなくなりました。

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4