ばくがの業務効率化チャンネル

このブログは個人的なエクセルの備忘録です

各シートのA列の最終行の下に先月の月初を入力

Sub 対象月の記載()

'画面停止
Application.ScreenUpdating = False

  Dim i As Long
  
  Dim 先月 As String
  
  '先月の1日を取得
  先月 = DateSerial(Year(Date), Month(Date) - 1, 1)
  
  'すべてのシートに実行
  For i = 1 To Sheets.Count
   
    With Worksheets("マスタシート").Range("A2").CurrentRegion
       
         '1列目をシート名でフィルターをかける
        .AutoFilter Field:=1, Criteria1:=Sheets(i).Name
        
         '絞り込んだ行が1より大きい場合
         If WorksheetFunction.Subtotal(3, Range("A:A")) > 1 Then
          
           Sheets(i).Cells(Rows.Count, 2).End(xlUp).Offset(0, -1) = 先月

   Sheets(i).Cells(Rows.Count, 2).End(xlUp).Offset(0, -1).NumberFormatLocal = "yyyy""年""m""月"";@"

         End If
           
    End With
  
  Next i
 
  'オートフィルタの解除
  Worksheets("マスタシート").Range("A2").CurrentRegion.AutoFilter
  
'画面停止解除
Application.ScreenUpdating = True


End Sub