Aという文字を、Aという文字で分割してみる
面白いネタを拝見したので、昨日までのテーマを一時お休み。
VBAには、Splitという関数がある。
docs.microsoft.com
文字通り、対象となる文字列を、指定文字で分割する関数だ。
では、Aという文字をAという文字で分割したらどうなるだろう。
試してみた。
Sub TEST() Dim arr As Variant arr = Split("A", "A") End Sub
分割した戻り値は配列なので、arrという変数で受け取ってみた。
結果は以下の通り。
Aという文字を中心に、その左右に「無の空間」(ここでは"")だけが残ったような感じだ。概念的で、何とも面白い。
また、戻り値は0から始まる配列なので、UBound(arr)=1となる。奇しくも、「A」が何個あるか?という問いがあれば、その答えと一致する。
ということで、「指定文字列内に指定文字が幾つあるか」を返す関数にしてみた。
Function CountCharacter(source_char As String, _ count_char As String) As Long CountCharacter = UBound(Split(source_char, count_char)) End Function
確認した結果が、↓こちら。
特徴的なのは、数える文字が「AB」のような複数文字でもOKということ。この場合、「AB」というパターンが何セットあるかを数えることになる。
「数える」以外のケースでも色々と応用が利くので、重宝しています。
参考まで。