| 
    
     |  | ▼うさこ さん: 横から失礼
 AutoFilterで年月日の月データを表示するには
 下記のようにします。
 サンプルをあげておきます。
 Sheet1はデータ
 Sheet2からは抽出データ
 
 Sub Macro1()
 Dim lCol  As Long
 Dim lPage  As Long
 Dim sht   As Worksheet
 Dim i    As Long
 Dim sS   As String
 Dim sE   As String
 Dim inPage As Long
 
 sS = InputBox("処理開始年月日を入力", "処理開始年月日", DateSerial(Year(Date), Month(Date), 1))
 sE = DateSerial(Year(CDate(sS)), Month(CDate(sS)) + 1, 1 - 1)
 
 inPage = 5 '区切りの列数
 With Worksheets("Sheet1")
 lCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
 lPage = Fix((lCol - 2) / inPage + 0.999999)  'シート数
 .AutoFilterMode = False
 With .Range("A1").CurrentRegion
 .AutoFilter Field:=1, Criteria1:=">=" & sS, Operator:=xlAnd, _
 Criteria2:="<=" & sE
 For i = 1 To lPage
 ' シートの有無の確認
 On Error Resume Next
 Set sht = Worksheets("Sheet" & i + 1)
 If Err.Number <> 0 Then
 ' 無かった追加
 Set sht = Worksheets.Add(After:=Worksheets(Worksheets.Count))
 sht.Name = "Sheet" & i + 1
 End If
 sht.Cells.Clear
 Set sht = Nothing
 .SpecialCells(xlCellTypeVisible).Copy _
 Worksheets("Sheet" & i + 1).Range("A1")
 
 With Worksheets("Sheet" & i + 1)
 .Columns(i * inPage + 3).Resize(, inPage * (lPage - 1)).Delete
 .Columns(3).Resize(, (i - 1) * inPage).Delete
 End With
 Next
 End With
 .AutoFilterMode = False
 End With
 End Sub
 
 |  |