| 
    
     |  | ▼auxo さん: こんにちは。
 
 >Sub Test()
 >  Dim WS_Data As Worksheet
 >  Dim WS_In As Worksheet
 >  Dim TRange As Range '集計対象範囲
 >  Dim SfRange As String  '集計範囲1
 >  Dim By2Range As String '集計範囲2
 >  Dim SFB As String '集計名
 >  Dim Bcnt As Integer
 >
 >  Set WS_Data = ThisWorkbook.Worksheets("DATA")
 >  Set WS_In = ThisWorkbook.Worksheets("資料")
 >  Set TRange = WS_In.Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp)) '資料範囲
 >
 >  With WS_Data
 >    '集計範囲1
 >    SfRange = .Name & "!" & .Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp)).Address
 >    '集計範囲2
 >    By2Range = .Name & "!" & .Range(.Cells(3, 8), .Cells(.Rows.Count, 8).End(xlUp)).Address
 >
 >    '集計
 >    For Each FERange In TRange
 >      SFB = FERange.Value
 >      Bcnt = Application.Evaluate( _
 >        "=SUMPRODUCT((" & SfRange & "=" & SFB & ")*(" & By2Range & "<>""""))")
 
 'evaluate()の中ってセルに入れる数式と一緒ですよね?
 
 'debug.print "=SUMPRODUCT((" & SfRange & "=" & SFB & ")*(" & By2Range & "<>""""))"
 
 'なんてして確認してみて下さい。見せていただいたコードだと
 
 '変数SFBには、「""りんご""」と文字列としてダブルコーテーションが入っていなければなりませんが・・・。
 
 'もしくは、
 
 '"=SUMPRODUCT((" & SfRange & "=""" & SFB & """)*(" & By2Range & "<>""""))"
 'とするか・・・。
 
 
 >
 >      MsgBox Bcnt
 >    Next
 >
 >  End With
 >End Sub
 
 実際に確認したわけではありません。Excel2002もHD取り替えれば環境はあるんですが、
 現在、バックアップ中なもので・・・。
 とりあえず、上記を確認してみて下さい。
 
 
 |  |