| 
    
     |  | ▼kikan さん: 
 
 >>>(ワークシートWAREA)にコピーして
 >>> 下の配列はコピー後の(ワークシートWAREA)になります。
 >>>                ・
 >>>の様になってまして H列に種類1〜8までの種類があります。
 >>>ここでラベルに
 >>>      ”種類1:2件”
 >>>      ”種類2:1件”
 >>>      ”種類3:1件”
 >>>      ”種類4:2件”
 >>>      ”種類5:0件”
 >>>      ”種類6:0件”
 >>>      ”種類7:0件”
 >>>      ”種類8:1件”
 >>> と言った具合に表示させたいのですが・・?
 
 >CountIf関数ですが、具体的にどの様な構文を書けばよろしいでしょうか?
 >コマンドボタン1押して種類1をラベル1に○○個ちお表示させる構文を
 >教えてください。
 
 
 ラベルというのは どこにあるのでしょうか?
 
 UserForm にあるLabelのことだとして、ステップバイステップで
 下のボタン_Click()プロシージャ内に
 コードを書いていただけませんか?
 
 'ボタン名は適当に btnCountIf としてあります
 Private Sub btnCountIf_Click()
 
 '(1)AutoFilterで抽出された(ワークシートWAREA)の表範囲を _
 変数r に代入してください
 
 Dim r As Range
 Set r = Worksheets("WAREA").Range("A1").CurrentRegion
 
 '(2) (1)で得られた表範囲から 1行目の列見出し行を削除してください
 
 Set r = Intersect(r, r.Offset(1))
 
 
 '(3) (2)で得られたデータ範囲をそのうちの「H列」だけに _
 限定してください
 
 Set r = r.Columns("H").Cells
 
 '(4)表の下の(G列に) H列をカウントするための(種類名)を _
 行方向に列挙してください
 
 Dim i As Long
 Dim c As Range
 Set c = r.Item(r.Count + 2, 0)
 For i = 1 To 8
 c.Item(i, 1).Value = "種類" & i
 Next
 
 '(5)(4)で書き出した(種類名)のとなり H列 に _
 (3)で得られた範囲を対象に 種類別個数をカウント _
 する数式を一括セットしてください
 r.Item(r.Count + 2, 1).Resize(8).FormulaR1C1 = _
 "=COUNTIF(" & r.Address(, , xlR1C1) & ",RC[-1])"
 
 '(6)(5)でカウントした結果をラベルコントロールにコピー _
 してください。
 
 Set c = c.CurrentRegion '(4)の範囲と(5)の範囲
 For i = 1 To 8
 Controls("Label" & i).Caption = _
 c.Item(i, 1) & " : " & c.Item(i, 2)
 Next
 
 
 '(7) 必要ならば COUNTIFに使った範囲をクリアしておきます。
 
 c.ClearContents
 
 
 '(8)表範囲をCSV出力するには
 >「WAREA」シートを[編集]メニュー -[シートの移動またはコピー]を使って
 >あたらしいBookにCopyして、そのBookを (CSV形式で)[名前をつけて保存]する
 >するまでの操作をマクロ記録してください。
 
 
 End Sub
 
 |  |