| 
    
     |  | ▼マナ さん: >▼VBA初心者 さん:
 >
 >>Worksheet(1月〜12月)にカレンダーを表示させてあります。
 >
 >まず、1月のシートだけで、ちゃんと動くものにしてください。
 
 マナ様
 いつもお世話になっております。
 お返事ありがとうございます。
 
 1月のシートのみでしたらγ様が教えてくださったコードで動きました。
 
 Sub カレンダー入力新規()
 Dim ws1     As Worksheet
 Dim ws2     As Worksheet
 Dim lastRow   As Long
 Dim rngCalendar As Range
 Dim rngFound  As Range
 Dim rngFirstcell As Range
 Dim d      As Long
 Dim s      As String
 Dim k      As Long
 Dim i      As Long
 Dim j      As Long
 
 
 Set ws1 = Worksheets("Sheet1")
 Set ws2 = Worksheets("1月")
 lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
 
 Set rngCalendar = ws2.Range("A1:H14")
 
 
 For k = 1 To lastRow
 d = ws1.Cells(k, 1).Value '日付け
 s = ws1.Cells(k, 2).Value 'スケジュール
 i = CLng(d) '日付をシリアル値に変更
 
 
 Set rngFound = rngCalendar.Find(i, After:=rngCalendar(1), _
 LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
 MatchCase:=False, MatchByte:=False, SearchFormat:=False)
 
 
 If d = rngFound.Value Then
 Call setSchedule(rngFound.Offset(1, 0), s)
 
 Else
 Set rngFound = rngCalendar.FindNext(rngFound)
 
 If Not rngFound Is Nothing Then
 
 If d = rngFound.Value Then
 Call setSchedule(rngFound.Offset(1, 0), s)
 
 End If
 
 End If
 
 End If
 
 Next k
 
 End Sub
 
 Function setSchedule(r As Range, s As String)
 If r.Value = "" Then
 r.Value = s
 Else
 r.Value = r.Value & vbLf & s
 End If
 End Function
 
 
 これです!
 
 
 |  |