InStr関数をループさせて、複数回の禁止ワードを探す
Const strMOJI = "注目 激安通販 激安商品 激安価格"
から、
激安の文字がいくつあるか?
InStr関数を使って、カウントしてみたいと思います。
Instr(検索開始位置, 検索元文字列, 探す文字列)
で、チェックできるので、
n = InStr(n, strMOJI, "激安")
みたいに、位置が返るので使ってみます。
いつもの脳内垂れ流し解説のテスト動画です。
【VBA】単体テスト InStr(検索開始位置, 検索元文字列, 探す文字列) 【三流君】 - YouTube
www.youtube.com
デバック時↑、
テストコードと合わせて、使ってみてください。
ループの作り方など、
イロイロとあるので、
面白い じゃなかった、
シンプルでわかりやすいコードを作成してくださいね。
少しでも文字列処理の参考となればうれしいです。
キーワード:
VBA,InStr関数,文字列操作,単体テスト,
デバッグ,F8,ステップ実行
テストで使用したコードです。
Option Explicit
Sub test_instr20160812()
Const strMOJI = "注目 激安通販 激安商品 激安価格"
Dim n As Integer '位置
Debug.Print strMOJI
n = 1 'スタートを1文字目から
Debug.Print "n = " & n & "文字目から探すと"
n = InStr(n, strMOJI, "激安")
Debug.Print "返ってきた激安の位置は " & n
n = n + 1 'その次の文字から探したいので+1
Debug.Print "n = " & n & "文字目から探すと"
n = InStr(n, strMOJI, "激安")
Debug.Print "返ってきた激安の位置は " & n
n = n + 1 'その次の文字から探したいので+1
Debug.Print "n = " & n & "文字目から探すと"
n = InStr(n, strMOJI, "激安")
Debug.Print "返ってきた激安の位置は " & n
n = n + 1 'その次の文字から探したいので+1
Debug.Print "n = " & n & "文字目から探すと"
n = InStr(n, strMOJI, "激安")
Debug.Print "返ってきた激安の位置は " & n
End Sub
'Whileループで回し 単語の数をカウントするテスト
Sub test_instr20160812_002()
Const strMOJI = "注目 激安通販 激安商品 激安価格"
Dim n As Integer '位置
Dim i As Integer '見つけた個数
Debug.Print strMOJI
'初期処理
i = 0 '見つけた個数を0で初期化
n = InStr(1, strMOJI, "激安") '1文字目から探す
While n > 0 '単語・文字が見つかっている間回る
i = i + 1 '見つけた個数をカウントアップ
Debug.Print i & "," & n & "文字目に単語有"
'次の位置+1 から 文字を探す
n = InStr(n + 1, strMOJI, "激安")
'↑見つからないと0が返るので、ループを抜けるよ
Wend
Debug.Print i & "個の単語を見つけました"
End Sub
'Forループで回し 単語の数をカウントするテスト
Sub test_instr20160812_003_For()
Const strMOJI = "注目 激安通販 激安商品 激安価格"
Dim n As Integer '位置
Dim i As Integer '見つけた個数
Debug.Print strMOJI
'初期処理
n = 0 'スタート位置を0で初期化
'ループで探す
For i = 0 To 9999 '最大9999回わす
'次の位置 n+1 から 文字を探す
n = InStr(n + 1, strMOJI, "激安")
'↑見つからないと0が返るので↓でループを抜けるよ
If n = 0 Then Exit For '見つからないときは Exit forで抜ける
'中間結果の表示
Debug.Print i & "," & n & "文字目に単語有"
Next
'ループカウンタのiが見つけた個数です。
Debug.Print i & "個の単語を見つけました"
End Subループの作り方など、
イロイロとあるので、
面白い じゃなかった、
シンプルでわかりやすいコードを作成してくださいね。
少しでも文字列処理の参考となればうれしいです。
いつもの脳内垂れ流し解説のテスト動画です。
※上の動画と同じです。
www.youtube.com
【VBA】単体テスト InStr(検索開始位置, 検索元文字列, 探す文字列) 【三流君】 - YouTube