|
▼nonoka さん:
おはようございます
まず、消去なんですが、
アップ済みのコードは最初にINPUTシートの前回の状態をクリアしています。
で、追加で【クリアもしたい】といわれるのは、処理後、ただちに(自動で)クリアしたいということですか?
もし、そうなら、アップ済みのコードは、元ネタから INPUTシートと軽薄表シートの両方にコピペしていますので
そもそもがINPUTシートへのコピペをやめればよろしいのですが?
なので、以下のコードでは、処理後、INPUTシートにはコピペしたものが残っている。
そこで、INPUT消去 を実行すればクリアされるという構えにしてあります。
なお、このクリア処理は、本体(Sample2)の中でも共通プロシジャとして使用します。
Sub Sample2()
Dim n As Long
Dim shTo As Worksheet
Dim z1 As Long
Dim z2 As Long
Dim x As Long
Dim c As Range
Dim flag As Boolean
Set shTo = Sheets("計画表")
With Sheets("INPUT")
Call Input消去
z1 = 7 'INPUTのコピー開始行
For Each c In .Range("H5,J5")
x = 5 'コピー列数
If flag Then x = 4 '2回目は4列
n = Val(c.Value)
If n > 0 Then
z2 = shTo.Range("C" & shTo.Rows.Count).End(xlUp).Row + 1
.Range("C5").Resize(, x).Copy .Range("C" & z1).Resize(n)
.Range("C5").Resize(, x).Copy shTo.Range("C" & z2).Resize(n)
If flag Then
.Range("C" & z1).Offset(, x).Resize(n).Value = n
shTo.Range("C" & z2).Offset(, x).Resize(n).Value = n
End If
flag = True '次は2回目
z1 = z1 + n '2回目のINPUTコピー開始行
End If
Next
End With
End Sub
Sub Input消去()
With Sheets("INPUT")
Intersect(.Range("A1", .UsedRange).Offset(6), .Columns("C:G")).ClearContents
End With
End Sub
|
|