VBA プロシージャが大きすぎます
皆様、こんにちは。
次のようなプロシージャを書きましたが、プロシージャが大きすぎますというエラーメッセージが出てしまいます。最初は2つのサブに分けてみましたが、正しく動かなくなりました。できれば、文書自体を短くしたいですが、方法がありましたら教えてください。どうぞよろしくお願いします。
Sub Test()
Dim nR As Long
Dim nC As Long
Dim i As Long
nR = 2
nC = 2
i = 68
i1 = 69
i2 = 70
...
i41 = 110
With Worksheets(1)
Do
If .Cells(i, 11).Value <> "" Then
With Worksheets(2)
Do
If .Cells(nR, nC).Value = "" Then
Exit Do
End If
nR = nR + 41
Loop
.Cells(nR, nC).Value = "1.1"
.Cells(nR, nC + 1).Value = "計"
.Cells(nR, nC + 2) = Worksheets(1)Cells(i, 14)
.Cells(nR, nC + 3) = Worksheets(1).Cells(i, 15)
.Cells(nR, nC + 4) = Worksheets(1).Cells(i, 16)
.Cells(nR, nC + 5) = Worksheets(1).Cells(i, 17)
.Cells(nR, nC + 6) = Worksheets(1).Cells(i, 18)
.Cells(nR, nC + 7) = Worksheets(1).Cells(i, 19)
.Cells(nR, nC + 8) = Worksheets(1).Cells(i, 20)
.Cells(nR, nC + 9) = Worksheets(1).Cells(i, 21)
.Cells(nR, nC + 10) = Worksheets(1).Cells(i, 22)
.Cells(nR, nC + 11) = Worksheets(1).Cells(i, 23)
.Cells(nR, nC + 12) = Worksheets(1).Cells(i, 24)
.Cells(nR, nC + 13) = Worksheets(1).Cells(i, 25)
.Cells(nR, nC + 14) = Worksheets(1).Cells(i, 26)
.Cells(nR, nC + 15) = Worksheets(1).Cells(i, 27)
.Cells(nR, nC + 16) = Worksheets(1).Cells(i, 28)
.Cells(nR, nC + 17) = Worksheets(1).Cells(i, 29)
...
.Cells(nR + 41, nC + 1).Value = "燃料"
.Cells(nR + 41, nC + 2) = Worksheets(1).Cells(i + 41, 14)
.Cells(nR + 41, nC + 3) = Worksheets(1).Cells(i + 41, 15)
.Cells(nR + 41, nC + 4) = Worksheets(1).Cells(i + 41, 16)
.Cells(nR + 41, nC + 5) = Worksheets(1).Cells(i + 41, 17)
.Cells(nR + 41, nC + 6) = Worksheets(1).Cells(i + 41, 18)
.Cells(nR + 41, nC + 7) = Worksheets(1).Cells(i + 41, 19)
.Cells(nR + 41, nC + 8) = Worksheets(1).Cells(i + 41, 20)
.Cells(nR + 41, nC + 9) = Worksheets(1).Cells(i + 41, 21)
.Cells(nR + 41, nC + 10) = Worksheets(1).Cells(i + 41, 22)
.Cells(nR + 41, nC + 11) = Worksheets(1).Cells(i + 41, 23)
.Cells(nR + 41, nC + 12) = Worksheets(1).Cells(i + 41, 24)
.Cells(nR + 41, nC + 13) = Worksheets(1).Cells(i + 41, 25)
.Cells(nR + 41, nC + 14) = Worksheets(1).Cells(i + 41, 26)
.Cells(nR + 41, nC + 15) = Worksheets(1).Cells(i + 41, 27)
.Cells(nR + 41, nC + 16) = Worksheets(1).Cells(i + 41, 28)
.Cells(nR + 41, nC + 17) = Worksheets(1).Cells(i + 41, 29)
End With
Else
Exit Do
End If
i = i + 51
i1 = i1 + 51
...
i41 = i41 + 51
Loop
End With
End Sub
できれば、まとめて
.Range(Cells(nR, nC + 2), Cells(nR, nC + 17)).Value = Worksheets(1).Range(Cells(i, 14), Cells(i, 29)).Value
のようにしたいですが、これもまたエラーが出てしまいます。
お礼
ご回答をありがとうございます。 Wendy02さんのご指摘のとおりでした。 Word側にもチェックをして走らせており、同じ実行エラーが出ておりましたので関係無いと思っておりましたが、パソコンを再起動することで正常に動作するようになりました。 デバッグ中にメモリに残されてた、チェックを入れる前のWordのアプリケーションイメージが影響していたのだと思われます。 本当にありがとうございました。