こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

変数の中の特定の文字の出現回数を取得したい。

Sub test01()
Dim mystr As String

mystr = "a1a2a3"

Debug.Print WorksheetFunction.CountA(mystr, "a")

End Sub

のようなコードを作りました。
mystrの中に3つの「a」があります。

なので、CountA関数を使えば、3が返ると思ったのですが、2が返りました。
なぜ3ではなく2が返るのでしょうか?

CountA関数でなくてもいいので、
変数の中の特定の文字の出現回数を取得するコードを教えてください。

投稿日時 - 2014-11-21 23:24:12

QNo.8832977

暇なときに回答ください

質問者が選んだベストアンサー

こんばんは!

確かにCOUNTA関数を使うと、「a」がいくつあっても「2」が返ってきますね。

Sub Sample1()
Dim mystr As String
mystr = "a1a2a3"
Debug.Print Len(mystr) - Len(Replace(mystr, "a", ""))
End Sub

のような感じではどうでしょうか?m(_ _)m

投稿日時 - 2014-11-21 23:41:42

お礼

ありがとうございます。

投稿日時 - 2014-12-12 22:23:19

ANo.2

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

countAはそんなものを返す関数じゃないよ。
Debug.Print UBound(Split(mystr, "a"))
としてください。

投稿日時 - 2014-11-21 23:40:41

お礼

ありがとうございます。

投稿日時 - 2014-12-12 22:23:21