-ChatGPT4-に質問 VBAでインプットボックスに入力した数値の(月)にもとづく最終日をセルに代入して

-ChatGPT4-

-ChatGPT4-に質問

VBAでインプットボックスで入力された数値(月)に基づいて、その月の最終日を日付形式で取得し、指定したセルに代入する。セルの書式はグレゴリオ暦で日付にしてください。

ChatGPT4の回答

Sub GetLastDayOfMonthAndSetToCell()
    Dim inputMonth As Integer
    Dim lastDay As Date
    Dim currentYear As Integer
    Dim ws As Worksheet

    ' 年を取得(現在の年を使用)
    currentYear = Year(Date)

    ' インプットボックスで月を入力
    inputMonth = InputBox("月を入力してください(例:4):", "月入力")

    ' 入力された月の最終日を取得
    If inputMonth >= 1 And inputMonth <= 12 Then
        lastDay = DateSerial(currentYear, inputMonth + 1, 0)

        ' 結果をセルに代入(ここでは Sheet1 の A1 セルに代入)
        Set ws = ThisWorkbook.Sheets("Sheet1")
        ws.Cells(1, 1).Value = lastDay

        ' セルの書式をグレゴリオ暦に設定
        ws.Cells(1, 1).NumberFormat = "[$-F800]dddd, mmmm dd, yyyy"

        MsgBox "入力された月の最終日は " & ws.Cells(1, 1).Text & " で、セル A1 に代入されました。"
    Else
        MsgBox "正しい月を入力してください。"
    End If

End Sub

タイトルとURLをコピーしました