訪問して頂きありがとうございます。まさふくろーです。
この記事では、文字列に指定した文字列があるか調べる方法をご紹介します。
文字列に指定した文字列があるか調べる
使用する関数
InStr関数
InStr( [start] , string1 , string2 , [compare] )
説明 |
ある文字列(string1)の中から検索文字列(string2)が最初に見つかった位置を返します。 |
検索文字列(string2)が見つからない場合は「0」を返します。 |
指定項目 | 必須 | 説明 |
start | ー |
検索の開始位置を数値で設定。 省略した場合、先頭の文字から検索されます。 |
compare を指定した場合、start は必須となります。 |
||
string1 | 〇 | もとになる文字列を指定します。 |
string2 | 〇 | 検索文字列を指定します。 |
compare | ー | 以下、文字列比較の種類を指定します。 |
引数「compare」に指定する定数と値
定数 | 値 | 内容 |
vbBinaryCompare |
0 |
バイナリ-モードで比較します。 |
文字の半角・全角を区別します。 | ||
vbTextCompare |
1 |
テキストモードで比較します。 |
文字の半角・全角を区別しません。 |
使用する演算子
Like演算子
result = string Like pattern
説明 |
2つの文字列を比較します。 |
「Like」演算子は、文字の一部を抽出するようなデータ(完全一致ではないデータ)を抽出する際に使用します。 |
patternには、ワイルドカードを使用することができます。 |
指定項目 | 必須 | 説明 |
string | 〇 | もとになる文字列を指定します。 |
pattern | 〇 | 比較したい文字列を指定します。 |
Like演算子で指定できるワイルドカードの種類
ワイルドカード | 説明 | 使用例 | 抽出結果 |
* | 0字以上の任意の文字列 | Like 札幌市* | 札幌市で始まる文字 |
? | 任意の1文字 | Like 第?営業部 | 第一営業部、第1営業部、第二営業部など |
# | 任意の1桁の数字 | Like 1#3 | 103、113、123、193など |
[] | []内のいずれかの文字 | Like 第[一二]営業部 | 第一営業部、第二営業部(第1営業部、第三営業部などは検索されない) |
[!] | []内のいずれの文字も含まない | Like 第[!一二]営業部 | 第1営業部、第三営業部など(第一営業部、第二営業部は検索されない) |
[-] | []内で指定した文字範囲 | Like b[a-c]d | bad、bbd、bcd |
サンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Private Sub Sample() Dim value As String value = "AccessVBAサンプル" If InStr(value, "サンプル") > 0 Then MsgBox "文字列【サンプル】が含まれています。" End If If value Like "*サンプル*" Then MsgBox "文字列【サンプル】が含まれています。" End If End Sub |
1 | Subプロシージャ「Sample」を作成。 |
5 | 文字列「AccessVBAサンプル」を文字列型変数「value」に代入。 |
7 | 変数「value」に文字列「サンプル」が含まれている場合、メッセージボックスに表示します。 |
11 | 変数「value」に文字列「サンプル」が含まれている場合、メッセージボックスに表示します。 |
実行結果
関連記事
最後まで読んでいただき、ありがとうございました!
本のまとめ関連記事はこちら