月別シートへの転記
を押して作動するプログラムを作ります。
Sub カット()
ActiveSheet.Next.Activate
If Range("D3") = "" Then
Range("A3").Select
Else
Range("D2").End(xlDown).Select
Selection.Offset(1, -3).Select
End If
ActiveSheet.Previous.Activate
Range("D5").End(xlDown).Select
Range(Cells(6, 1), Selection.Offset(0, 19)).Cut
ActiveSheet.Next.Activate
ActiveSheet.Paste
End Sub
ActiveSheet.Next.Activate
は、ActiveSheet の次のシートをアクティブにせよ、ということ。
(ここでActiveSheetとは入力シートのことです)
*データを転記入力したい”月別シート(今月のシート)”は、かならず”入力シート”の右隣に置いておいてください。
次に、月別シートの”D3”セルが空白かどうかを参照します。↓
もし、空白ならば
If Range("D3") = "" Then
Range("A3").Select
のとおりに、セル”A3”を選択。
もし上記の図のように、セル”D3”に、データが入っている場合は
Range("D2").End(xlDown).Select
Selection.Offset(1, -3).Select
のように、セル”D2”から、下の行に向かって、データが検出される最下端の行のセルから
オフセット(1,-3)なので、1行下へ、マイナス3列右(つまり3列左)へ
つまり、上記図の場合、最終的にセル”A8”を選択するようにします。
次に、”入力シート”へ戻り
Range("D5").End(xlDown).Select
Range(Cells(6, 1), Selection.Offset(0, 19)).Cut
のとおり、
セル”D5”から、データが検出される最下端のセルを選択し、
Cells(6,1)つまり、セル”A6”から、先ほど選択したセルから右へ19列移動したセルまでのデータ
(下図の青色で範囲指定した部分)をカットし、
↓クリックで拡大
ActiveSheet.Next.Activate
ActiveSheet.Paste
月別シートをアクティブにして、カットしたデータをペーストします。