● 文字列に指定した文字がいくつ含まれているか取得する ●

コマンドラインで受け取った文字列の数の取得、CSVファイルの列数取得などに使える。
API関数は使わない。極めて純粋なVBのコードです。

'---------------------------------------------------------------------------
'  関数名 : GetCharNumFromString
'  機能   : ある文字列に指定した文字がいくつ含まれているか調べる
'  引数   : (in) srcString … 対象文字列
'            (in) tgtString … 検索文字
'            (in) opFlag …  True:2つ以上見つかったら終了
'                            False:2つ以上見つかっても検索を続ける
'  返り値 : 見つかった数
'---------------------------------------------------------------------------
Public Function GetCharNumFromString(ByVal srcString As String, ByVal tgtString As String, _
                                      ByVal opFlag As Boolean) As Long

    Dim FoundPos As Long
    Dim SearchStartPos As Long  '検索開始位置

    SearchStartPos = 1

    Do
        FoundPos = InStr(SearchStartPos, srcString, tgtString, vbBinaryCompare)

        If FoundPos = 0 Then Exit Function

        SearchStartPos = FoundPos + Len(tgtString)
        GetCharNumFromString = GetCharNumFromString + 1  '行数をカウント

        If opFlag Then
            If GetCharNumFromString > 1 Then Exit Function
        End If
    Loop

End Function

戻る