【ACCESS VBA】文字列に指定した文字列があるか調べるには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、文字列に指定した文字列があるか調べる方法をご紹介します。

文字列に指定した文字列があるか調べる

使用する関数

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 Subプロシージャ「Sample」を作成。
5 文字列「AccessVBAサンプル」を文字列型変数「value」に代入。
7 変数「value」に文字列「サンプル」が含まれている場合、メッセージボックスに表示します。
11 変数「value」に文字列「サンプル」が含まれている場合、メッセージボックスに表示します。

実行結果

関連記事

最後まで読んでいただき、ありがとうございました!