'========================================================================================= ' 226 DATEDIFをセルに入れて指定月の日数を求める '----------------------------------------------------------------------------------------- '【ヒント】 ' このマクロは、おためし機能の動作用のコードを含んでいます。(概ね下半分) ' ★★★の行またはサブプロシージャーが、タイトル機能に関係するコードです。(概ね上半分) '========================================================================================= ' ◆標準モジュールのコード◆ '----------------------------------------------------------------------------------------- Option Explicit Dim 年月 '★★★ Dim 当月初 As Date '★★★ Dim 翌月初 As Date '★★★ Dim 日数 As Variant '★★★ Dim 曜(7) As String Dim キャンセル As Integer Dim タイトル As String Dim スタイル As Long Dim メッセージ As String Dim 応答 As Variant '========================================================================================= Private Sub DATEDIFをセルに入れて指定月の日数を求める() '★★★ Range("F10").Formula = "=DATEDIF(F8,F9,""D"")" 'DATEDIF関数を F10セルに入れる 日数 = Range("F10").Value '日数を取得する End Sub '========================================================================================= '----------------------------------------------------------------------------------------- Sub おためしマクロ() おためしメッセージを準備する キャンセル = 0 月を入力してもらう If キャンセル = 1 Then 'InputBoxでキャンセルボタンが押された場合 Exit Sub End If Range("F7") = 年月 '入力された年月 Range("F8") = 当月初 '★★★ その月の月初 Range("F9") = 翌月初 '★★★ その翌月初 Range("F11") = 曜(Weekday(年月 & "/1")) '曜日から始まります Range("F12") = Weekday(年月 & "/1") 'その曜日の順番 Range("F10").Select '数式が見えるようにカーソルを位置付ける ' メッセージ = "F10セルに、DATEDIF関数をセットします" 応答 = MsgBox(メッセージ, スタイル, タイトル) DATEDIFをセルに入れて指定月の日数を求める '★★★ End Sub '----------------------------------------------------------------------------------------- Private Sub おためしメッセージを準備する() Worksheets("Title").Select Range("M17").Select 'カーソルを定位置へ移動する タイトル = "500連発 第2弾 サンプルマクロ" スタイル = 64 'vbInformation End Sub '----------------------------------------------------------------------------------------- Sub 月を入力してもらう() Range("F7:F12").ClearContents 'クリアする 曜(1) = "日": 曜(2) = "月": 曜(3) = "火": 曜(4) = "水": 曜(5) = "木": 曜(6) = "金": 曜(7) = "土" メッセージ = "2000/8のように、年月を入力してください" 年月 = InputBox(メッセージ, タイトル) 'インプットボックスで入力 If 年月 = "" Then 'InputBoxでキャンセルボタンが押された場合 キャンセル = 1 Exit Sub End If ' 当月初 = DateValue(年月 & "/1") 'その月の月初 If Month(当月初) < 12 Then '当月初が11月以前なら 翌月初 = DateValue(Year(当月初) & "/" & Month(当月初) + 1 & "/1") '翌月初は当年 Else 翌月初 = DateValue(Year(年月) + 1 & "/1/1") '翌月初は翌年 End If End Sub '----------------------------------------------------------------------------------------- Sub Auto_Close() Application.DisplayAlerts = False '閉じる際に確認メッセージを出さない ActiveWorkbook.Close '現在開いているブックを閉じる End Sub '-----------------------------------------------------------------------------------------