Excel2010VBAのセルの入力が遅い
Excel2010のVBAなんですが、処理時間が非常に遅いです。プログラムの中でも遅い部分はセルに入力する部分です。多分24時間ぐらいプログラムを走らせておきましたがそれでも終わっていませんでした。
シートは6個あり、それぞれ関数の計算がされており、シート1からシート3までの計算されたものがシート4に出力され、そのシート4からプログラムで計算してシート5に出力されるコードです。
シート5に出力するデータは、「年」、「月」、「日にち」、「時刻」、「データ1」、「データ2」、「データ3」、「データ4」の8つの項目です。これは全ての行に入力するわけではなく、入力しなくてもいい空白の部分もあります。空白でもいいセルには入力の処理はしないようになっています。
処理時間が遅いというのは、データ量が非常に多いということもあるのですが最初に参照するデータは50万件以上(実際はこれよりはるかにあるのですが区切っています。)あります。
全てのコードはここには記載しませんが、特に遅いセルの入力の部分は、次の通りです。
For~
With Workbooks("ブック名.xlsm").Worksheets("シート5")
.Cells(b, 1) = Year(日付)
.Cells(b, 2) = Month(日付)
.Cells(b, 3) = Day(日付)
.Cells(b, 4) = TimeValue(日付)
.Cells(b, 5) = Application.Round(データ1, 3)
.Cells(b, 6) = Application.Round(データ2, 3)
.Cells(b, 7) = Application.Round(データ3, 3)
.Cells(b, 8) = Application.Round(データ4, 3)
End With
Next
この部分の処理を早くするにはどうしたらいいでしょうか?
回答よろしくお願いします。
お礼
mu2011さん回答有難うございます。 実を言いますと「ANo.4」回答とどちらを使用するか迷いましたが、 「ANo.3 Split」を採択しました。 理由は、複数のセルの値を、B列配下へ書き出すことになる事から、データカウントが必須となります。等々からご教授いただいた手法を実運用したいと思います。 以上