| 
    
     |  | こんにちは。かみちゃん です。 
 > R1に月を入力するセルがあり、10を入れると10月のD15〜D20のデータがD4〜D9に転記され、11月を入れるとD5〜E20まで、12月はD15〜F20という風にしたいのです。
 >以前教えていただいたシートモジュールで下記のように、記入してみましたが、転記がその月の分をD4:D9に転記するのみです。
 >どこをどう変えたら複数月のデータを転記できるのでしょうか
 
 以下のようにすればできると思います。
 ★の行の部分がポイントです。
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim V As Long
 
 If Target.Count <> 1 Then Exit Sub
 If Target.Address <> "$R$1" Then Exit Sub
 '数値でない場合は処理しない
 If IsNumeric(Target.Value) Then
 '整数でかつ、1以上12以下の場合のみ処理する
 If (Int(Target.Value) - Target.Value = 0) And (V >= 1 Or V <= 12) Then
 V = Target.Value
 If V <= 9 Then
 V = V + 12
 End If
 With Range("D15:D20").Resize(, V - 9) '★
 Application.EnableEvents = False
 Range("D4:D9").Resize(, .Columns.Count).Value = .Value '★
 Application.EnableEvents = True
 MsgBox V & vbCrLf & .Address
 End With '★
 Else
 MsgBox "入力値が誤っています"
 End If
 Else
 MsgBox "入力値が誤っています"
 End If
 End Sub
 
 |  |