1216130852 ExcelVBAです。


添付のように任意の列にある氏名をカウント(同名が複数行ある時は同名として一つでカウント)して、合計結果をMSGBOXに表示したいのですが、どのようにすればいいでしょうか?

※添付の場合は合計7名と表示

教えていただくと大変助かります。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/07/16 00:00:52
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント60pt

いろいろなやり方があると思いますが、Dictionary を使用したやり方です。

Sub myCount()
    Dim myDic As Object
    Set myDic = CreateObject("Scripting.Dictionary")
    
    Dim rg As Range
    For Each rg In Range("A2", Range("A" & Rows.Count).End(xlUp))
        If Not IsEmpty(rg.Value) Then
            If Not myDic.Exists(rg.Value) Then
                myDic.Add rg.Value, ""
            End If
        End If
    Next
    
    MsgBox "全部で" & myDic.Count & "名です"
End Sub

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_dictionary.ht...

id:hananeko_0

動作を確認しました。

みごとに希望通りに動きました!

Mookさん、いつもありがとうございます!

2008/07/16 00:00:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません