生産管理 年間シートを作ってみよう

Step 8 月末の日付を設定する

1月〜12月のシートは「原紙」をコピーし作成しますが、「原紙」は31日までになっています。
そこで、2月等のように31日ない月の日付を消します。
末日を取得するには、Excel Tipsで作成した「月の末日を計算」を使用しました。

原紙をコピーし、シート名を変更した直後に設定します。

メニューに戻る

スポンサーリンク






実行画面

2010年2月の末日は28日に設定できました。
生産管理の日付

スポンサーリンク



実行コード

'月の末日を計算
Private Function MonthLastDay(yy As Integer, mm As Integer) As Integer
    Dim i As Integer
    Dim tdate As Date
    
    tdate = Format(yy & "/" & mm & "/1", "yyyy/mm/dd")
    i = 28
    Do
        i = i + 1
    Loop Until Day(tdate + i - 1) = 1
    MonthLastDay = i - 1
End Function

'月末を設定する
Private Sub MonthLastDaySet(sy As String, n As Integer)
    Dim nlast As Integer
    Dim i As Integer
    
    nlast = MonthLastDay(Val(sy), n)
    If nlast < 31 Then
        '末日+1から31日まで消す
        For i = nlast + 1 To 31
            Sheets(sy & "年" & n & "月").Cells(5, 2 + i) = ""
        Next
    End If
End Sub

'原紙を1年分コピーする
Private Sub ExGensiCopy()
    Dim i As Integer
    Dim sy As String
    Dim n As Integer
    
    '作成する年
    sy = Range("C7")
    
    For n = 1 To 12
        'シートのコピー
        Worksheets("原紙").Copy before:=Worksheets("作成メニュー")
        For i = 1 To Sheets.Count
            If Len(Sheets(i).Name) > 2 And Left(Sheets(i).Name, 2) = "原紙" Then
                'シート名の変更
                Sheets(i).Name = sy & "年" & n & "月"
                MonthLastDaySet sy, n
                Exit For
           End If
        Next
    Next
End Sub

スポンサーリンク






メニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved