| 
    
     |  | こんにちは これで如何かな
 
 Dim Org_Sh As Worksheet '元Sheet
 Sub 抽結果別シートへ保存()
 Dim Va As Variant
 '元SheetをSet
 Set Org_Sh = Worksheets("RE_CALCU")
 抽出 "りんご", 1
 For Each Va In Array("りんご", "なし", "みかん", "ばなな", "メロン", "柿")
 If Va <> "りんご" Then
 抽出 Va, 1
 Else
 抽出1 Va
 End If
 Next Va
 End Sub
 '分類=分類を文字列で指定。項目=列番号を数字で指定
 Private Sub 抽出(ByVal SYOHINBU As String, ByVal 項目 As Integer)
 
 Dim Des_Sh As Worksheet '先Sheet
 
 '先SheetをSet なければ作成。
 On Error Resume Next
 Set Des_Sh = Worksheets(SYOHINBU)
 On Error GoTo 0
 If Des_Sh Is Nothing Then
 Set Des_Sh = Worksheets.Add(After:=Worksheets(Worksheets.Count))
 Des_Sh.Name = SYOHINBU
 Else
 Des_Sh.Cells.Clear
 End If
 'AutoFilterでコピー
 With Org_Sh.UsedRange
 .AutoFilter Field:=項目, Criteria1:=SYOHINBU
 .SpecialCells(xlVisible).Copy Des_Sh.Range("A1")
 Org_Sh.AutoFilterMode = False
 End With
 
 Set Des_Sh = Nothing
 End Sub
 
 Private Sub 抽出1(ByVal SYOHINBU1 As String)
 Dim Des_Sh1 As Worksheet '先Sheet
 Dim Da As Variant
 '先SheetをSet なければ作成。
 For Each Da In Array("青森", "山形", "鳥取")
 On Error Resume Next
 Set Des_Sh1 = Worksheets(SYOHINBU1 & "・" & Da)
 On Error GoTo 0
 If Des_Sh1 Is Nothing Then
 Set Des_Sh1 = Worksheets.Add(After:=Worksheets(Worksheets.Count))
 Des_Sh1.Name = SYOHINBU1 & "・" & Da
 Else
 Des_Sh1.Cells.Clear
 End If
 'AutoFilterでコピー
 With Org_Sh.UsedRange
 .AutoFilter Field:=1, Criteria1:=SYOHINBU1
 .AutoFilter Field:=2, Criteria1:=Da
 .SpecialCells(xlVisible).Copy Des_Sh1.Range("A1")
 Des_Sh1.Columns(1).Delete
 Org_Sh.AutoFilterMode = False
 End With
 Set Des_Sh1 = Nothing
 Next Da
 End Sub
 
 |  |