私は仕事用のプロジェクトトラッカーを作成しており、コードを短縮する助けが必要です。各製造元にはそれぞれ独自のシートがあります。私はプロジェクトマネージャーがデータを入力するUserformを持っています。製造シートのそれぞれは同一であり、オフセットもユーザーフォームにリンクされています。オフセットコードを短縮する方法VBA
下記のコードをご覧ください。私はコーディングが初めてで、助けをいくつか使うことができます。
'A&R 5X9N
If Me.CB7.Value = "A&R" And Me.CB23.Value = "5x9N" Then
rowcount = Worksheets("A&R").Range("c3").CurrentRegion.Rows.Count
With Worksheets("A&R").Range("c1")
'PROJECT
.Offset(rowcount, 0) = Me.CB1.Value
.Offset(rowcount, 1) = Me.TB2.Value
.Offset(rowcount, 2) = Me.TB3.Value
.Offset(rowcount, 3) = Me.CB4.Value
.Offset(rowcount, 4) = Me.CB7.Value
.Offset(rowcount, 5) = Me.TB1.Value
'FINISH DATES
.Offset(rowcount, 7) = Me.TB23.Value
.Offset(rowcount, 8) = Me.TB24.Value
.Offset(rowcount, 9) = Me.TB25.Value
.Offset(rowcount, 10) = Me.TB26.Value
.Offset(rowcount, 11) = Me.TB27.Value
.Offset(rowcount, 12) = Me.TB28.Value
.Offset(rowcount, 13) = Me.TB29.Value
'PRODUCTION
.Offset(rowcount, 14) = Me.TB8.Value
.Offset(rowcount, 15) = Me.TB9.Value
.Offset(rowcount, 16) = Me.TB10.Value
.Offset(rowcount, 17) = Me.TB11.Value
.Offset(rowcount, 18) = Me.TB12.Value
.Offset(rowcount, 19) = Me.TB13.Value
.Offset(rowcount, 20) = Me.TB14.Value
'ASSETS
.Offset(rowcount, 21) = Me.TB16.Value
.Offset(rowcount, 22) = Me.TB17.Value
.Offset(rowcount, 23) = Me.TB18.Value
.Offset(rowcount, 24) = Me.TB19.Value
.Offset(rowcount, 25) = Me.TB20.Value
.Offset(rowcount, 26) = Me.TB21.Value
.Offset(rowcount, 27) = Me.TB22.Value
.Offset(rowcount, 28) = Me.CB23.Value
.Offset(rowcount, 29) = Me.CB24.Value
.Offset(rowcount, 30) = Me.CB25.Value
.Offset(rowcount, 31) = Me.CB26.Value
.Offset(rowcount, 32) = Me.CB27.Value
End With
End If
'A&R 5X10N
If Me.CB7.Value = "A&R" And Me.CB23.Value = "5x10N" Then
rowcount = Worksheets("A&R").Range("AM3").CurrentRegion.Rows.Count
With Worksheets("A&R").Range("AM1")
'PROJECT
.Offset(rowcount, 0) = Me.CB1.Value
.Offset(rowcount, 1) = Me.TB2.Value
.Offset(rowcount, 2) = Me.TB3.Value
.Offset(rowcount, 3) = Me.CB4.Value
.Offset(rowcount, 4) = Me.CB7.Value
.Offset(rowcount, 5) = Me.TB1.Value
'FINISH DATES
.Offset(rowcount, 7) = Me.TB23.Value
.Offset(rowcount, 8) = Me.TB24.Value
.Offset(rowcount, 9) = Me.TB25.Value
.Offset(rowcount, 10) = Me.TB26.Value
.Offset(rowcount, 11) = Me.TB27.Value
.Offset(rowcount, 12) = Me.TB28.Value
.Offset(rowcount, 13) = Me.TB29.Value
'PRODUCTION
.Offset(rowcount, 14) = Me.TB8.Value
.Offset(rowcount, 15) = Me.TB9.Value
.Offset(rowcount, 16) = Me.TB10.Value
.Offset(rowcount, 17) = Me.TB11.Value
.Offset(rowcount, 18) = Me.TB12.Value
.Offset(rowcount, 19) = Me.TB13.Value
.Offset(rowcount, 20) = Me.TB14.Value
'ASSETS
.Offset(rowcount, 21) = Me.TB16.Value
.Offset(rowcount, 22) = Me.TB17.Value
.Offset(rowcount, 23) = Me.TB18.Value
.Offset(rowcount, 24) = Me.TB19.Value
.Offset(rowcount, 25) = Me.TB20.Value
.Offset(rowcount, 26) = Me.TB21.Value
.Offset(rowcount, 27) = Me.TB22.Value
.Offset(rowcount, 28) = Me.CB23.Value
.Offset(rowcount, 29) = Me.CB24.Value
.Offset(rowcount, 30) = Me.CB25.Value
.Offset(rowcount, 31) = Me.CB26.Value
.Offset(rowcount, 32) = Me.CB27.Value
End With
End If
だから、より効率的にしたいですか? – PMARINA
[配列](https://msdn.microsoft.com/en-us/library/office/gg264224.aspx)と[ループ](https://www.tutorialspoint.com/vba/vba_for_loop.htm)を使用して最適化します。 )。これですべての問題は解決するわけではありませんが、コードを書くのに役立ちます。 – PMARINA