|
最終的に、以下のようなソースにしたら、5割以上の減速になりました。
−配列を使う
−With を使って、Select をしない
−カウント処理用変数を integer -> long に。
どうも有難うございました。
-----------
Public Const INT_HNY_START_ROW As Integer = 5
Public Const INT_HNY_END_ROW As Integer = 55
Dim intRow As Integer
Dim intInputFlagCol As Integer
★ Dim vntAryInputData As Variant
★ With Worksheets("シートA") '▼▼▼
intInputFlagCol = .Range("HNY_INPUT_FLAG").Column '入力可能な項目(行)フラグが設定されている列
i = 1
'INPUTシートのデータを配列に読込
★ With Worksheets("INPUT")
★ vntAryInputData = .Range(.Cells(.Range("PHNYL1").Row, 2), .Cells(.Range("PHNYL53").Row, 15))
★ End With
For intRow = INT_HNY_START_ROW To INT_HNY_END_ROW Step 1
If .Cells(intRow, intInputFlagCol + 3).Value = "1" Then 'iのカウントアップ用Ifブロック
If .Cells(intRow, intInputFlagCol).Value = "1" Then
k = 10
For j = 1 To 10
★ .Cells(intRow, INT_HNY_PRJSTART_COL - 1 + j).Value = vntAryInputData(i, k)
k = k - 1
Next
End If
i = i + 1
End If
Next
End With '▲▲▲
|
|