| 
    
     |  | いつもいつもすいません。 月別の売上表があります。
 1ヶ月だけの抽出のマクロはできたのですが
 例えば1月〜3月まで抽出したいときは
 どうしたらいいでしょうか。
 
 また、集計のマクロがあるのですが、
 1/12,1/13,1/14,2/12,2/14と日付中心に集計をすると
 1/12の集計、1/13の集計と1日づつでてきてしまいます。
 1月の合計、2月の合計、とでてくる集計のやり方は、ありますでしょうか。
 申し訳ないのですが教えていただけますでしょうか。
 
 売上表
 A  B  C  D   E   F   G
 1 売上 NO コード 品名 単価 数量 計
 2 1/12 1  1111 スカート  10   1  10
 3 1/12 1  1111 スカート  10   1  10
 4 1/13 1  1111 スカート  10   1  10
 5 2/12 1  1111 スカート  10   1  10
 6 2/14 1  1111 スカート  10   1  10
 7 3/12 1  1111 スカート  10   1  10
 
 A   B  C  D   E   F   G
 1 売上  NO コード 品名 単価 数量 計
 2 1/12  1  1111 スカート  10   1  10
 3 1/12  1  1111 スカート  10   1  10
 41/12集計 2  1111 スカート  10   2  20
 5 1/13  1  1111 スカート  10   1  10
 61/13集計 2  1111 スカート  10   1  10
 
 
 抽出・集計マクロ
 Sheets("仕入日計").Select
 
 '----------------宣言セクション(各項目 最大1000件まで格納する)---
 Dim 仕入(1000) As Date
 Dim No(1000) As Single
 Dim コード(1000) As Single
 Dim 品名(1000) As String
 Dim 単価(1000) As Single
 Dim 数量(1000) As Single
 Dim 計(1000) As Single
 
 Dim n As Integer
 Dim i As Integer
 
 Dim mstr As String
 
 Dim WS1 As Worksheet
 Dim WS2 As Worksheet
 Dim TDate As Date
 Dim SName As String
 
 '------------------メッセージボックスの表示------------------------------
 mstr = InputBox("何年/何月分を抽出しますか?(数字のみ)", "抽出月指定")
 
 ↑
 ここを何年何月〜何年何月とできますでしょうか
 
 
 '-----------------該当データを一旦メモリ上に格納する---------------------
 Set WS1 = ThisWorkbook.Worksheets("仕入日計")
 
 n = 0
 i = 1
 
 Do While WS1.Cells(i + 1, "A") <> "" '----A列で空欄がくるまで繰り返す
 
 TDate = WS1.Cells(i + 1, "A")
 
 If Year(TDate) = Year(mstr) And Month(TDate) = Month(mstr) Then '----メッセージボックスで入力した月のデータを格納
 
 仕入(n) = WS1.Cells(i + 1, "A").Value
 No(n) = WS1.Cells(i + 1, "B").Value
 コード(n) = WS1.Cells(i + 1, "C").Value
 品名(n) = WS1.Cells(i + 1, "D").Value
 単価(n) = WS1.Cells(i + 1, "E").Value
 数量(n) = WS1.Cells(i + 1, "F").Value
 計(n) = WS1.Cells(i + 1, "G").Value
 
 n = n + 1
 End If
 i = i + 1
 Loop
 
 Sheets("仕入月別").Select
 Columns("A:G").Select
 Selection.ClearContents
 Range("A1").Select
 
 Set WS2 = ThisWorkbook.Worksheets("仕入月別")
 WS2.Range("A1").Value = "仕入"     '----------項目名
 WS2.Range("B1").Value = "No"
 WS2.Range("C1").Value = "コード"
 WS2.Range("D1").Value = "品名"
 WS2.Range("E1").Value = "単価"
 WS2.Range("F1").Value = "数量"
 WS2.Range("G1").Value = "計"
 
 For i = 0 To n - 1   '-----------メモリ上に格納していたデータを代入
 WS2.Cells(i + 2, "A").Value = 仕入(i)
 WS2.Cells(i + 2, "B").Value = No(i)
 WS2.Cells(i + 2, "C").Value = コード(i)
 WS2.Cells(i + 2, "D").Value = 品名(i)
 WS2.Cells(i + 2, "E").Value = 単価(i)
 WS2.Cells(i + 2, "F").Value = 数量(i)
 WS2.Cells(i + 2, "G").Value = 計(i)
 
 Next i
 
 Sheets("仕入月別").Select
 Range("A1").Select
 
 Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(6, 7), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
 
 ↑
 集計のマクロ
 
 Set WS1 = Nothing
 Set WS2 = Nothing
 
 End Sub
 
 
 |  |