• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:私が変更したいようにできるか、ぜひお力添えをお願いします。)

Excel VBAでカレンダーを作成する方法

このQ&Aのポイント
  • Excel VBAを使用して、指定した年月のカレンダーを作成する方法について説明します。
  • 入力ボックスで指定した年月の日付情報を取得し、カレンダーの表示範囲を設定します。
  • カレンダーには、指定した月の日付が表示され、他の月の日付はグレーアウトされます。また、指定した日付から試験までの日数を表示する機能もあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

Sub Prep_Calendar() Dim 入力 As String Dim 開始日 As Date, 日付 As Date Dim 今月 As Integer Dim i As Integer, j As Integer Cells.Clear 入力 = InputBox("年月を yyyy/m の形式で入力") s = InputBox("試験日yyyy/mm/dd=") 試験日 = DateValue(s) ' MsgBox 試験日 If IsDate(入力) = True Then 開始日 = CDate(入力) Else MsgBox ("正しい日付を入力") Exit Sub End If Range("B2").Value = Year(開始日) Range("D2").Value = Month(開始日) 今月 = Month(開始日) 日付 = 開始日 - Weekday(開始日) + 1 For i = 1 To 16 Step 3 For j = 1 To 7 If 今月 = Month(日付) Then Cells(i + 3, j + 1).Value = Day(日付) Cells(i + 3, j + 1).Interior.ColorIndex = 2 Cells(i + 4, j + 1).Interior.ColorIndex = 2 Cells(i + 5, j + 1).Interior.ColorIndex = 2 d = DateSerial(Range("b2"), Range("d2"), Day(日付)) If 試験日 - d >= 0 Then Cells(i + 5, j + 1) = 試験日 - d Cells(i + 5, j + 1).Font.Color = vbRed End If Else Cells(i + 3, j + 1).Value = "" Cells(i + 3, j + 1).Interior.ColorIndex = 35 Cells(i + 4, j + 1).Interior.ColorIndex = 35 Cells(i + 5, j + 1).Interior.ColorIndex = 35 End If 日付 = 日付 + 1 Next Next End Sub

noname#4742
質問者

お礼

うまく行きました。 質問の意図もしっかり読み取っていただき、本当にありがとうございました。 またのご活躍を楽しみにしております。

関連するQ&A