InStr 関数
InStr([lngStart, ] strString, strSearch [, lngCmp])
ある文字列の中から指定された文字列を検索し、最初に見つかった文字位置を返す文字列処理関数です。
引数
lngStart
省略可能です。
検索の開始位置を設定する数式を指定します。(省略した場合は先頭の文字から検索します)
Null値が含まれると、エラーになります。
strString
検索の開始位置を設定する数式を指定します。(省略した場合は先頭の文字から検索します)
Null値が含まれると、エラーになります。
検索先の文字列を指定します。
strSearch
検索する文字列を指定します。
lngCmp
省略可能です。
文字列比較のモードを指定します。(省略した場合はバイナリモードで比較を行います)
指定した場合は、引数 lngStart も必ず指定しなければなりません。
文字列比較のモードを指定します。(省略した場合はバイナリモードで比較を行います)
指定した場合は、引数 lngStart も必ず指定しなければなりません。
| 定数 | 値 | 内容 |
| vbBinaryCompare | 0 | バイナリ モードで比較を行います。 |
| vbTextCompare | 1 | テキスト モードで比較を行います。 |
戻り値
| 条件 | 戻り値 |
| strString が長さ 0 の文字列("")のとき | 0 |
| strString が Null 値のとき | Null 値 |
| strSearch が長さ 0 の文字列("")のとき | lngStart |
| strSearch が Null 値のとき | Null 値 |
| strSearch が見つからないとき | 0 |
| strSearch が見つかったとき | 文字列が見つかった位置 |
| lngStartの値が strSearch の文字数より大きいとき | 0 |
使用例
次のコードは、InStr 関数を使って文字列を検索する例です。
Dim lngPos
Dim strString
Dim strSearch
strString = "XXpXXpXXPXXP" '検索対象の文字列
strSearch = "P" '"P" を検索します
'4 番目の文字からテキストモードで比較を行います。6 を返します。
lngPos = InStr(4, strString, strSearch, 1)
'1 番目の文字からバイナリモードで比較を行います。9 を返します。
lngPos = InStr(1, strString, strSearch, 0)
'既定ではバイナリモードで比較を行います (最後の引数は、省略されます)。9 を返します。
lngPos = InStr(strString, strSearch)
'1 番目の文字からバイナリモードで比較を行います。"W" はないので、0 を返します。
lngPos = InStr(1, strString, "W")
If InStr(strString, strSearch) > 0 Then
'文字列の中に"P"の文字があればここの処理が行われます。
End If
備考
文字列をバイトデータとして扱う場合は、InStrB 関数を使用します。InStrB 関数は検索結果をバイト位置 (先頭からその位置までのバイト数) で返します。
Dim lngPos
lngPos = InStr("XXpXXpXXPXXP", "P") ' 9 を返します。
lngPos = InStrB("XXpXXpXXPXXP", "P") ' 18 を返します。
関連
好評の「最速攻略 VBScript サンプル大全集」の改訂版です。これまでのWindows2000/XPに加え、Windows Vista、最新のWindows 7環境にも対応しています。Windows上での処理の自動化や一括処理(バッチ処理)をテーマとしたVBScriptのサンプルスクリプト集です。付属 CD-ROMには、すぐに使うことができる100以上のサンプルスクリプトを用意しています。
WebでもWindowsでも使えるVBScriptだから手元においてさっと引けるこの一冊!VBScript5.6に対応!待望の改訂版!目的別リファレンスでやりたいことから調べられます。すべての項目にサンプルコード掲載!WSH、ASP、IEすべての環境でお役に立ちます。
好評のExcel VBAポケットリファレンスが改訂第3版としてリニューアルしました。知りたいコマンドがすぐ調べられる機能引きリファレンスはそのままに、最新の Excel 2010に完全対応。もちろん、これまでのExcel 97、2000、2002、2003、2007のすべてのバージョンに対応しています。「こんなときどうするの?」「どう書けばいいの?」という疑問がすぐ解決する、全てのExcel VBAユーザー必携の、最強のリファレンスブックです!
本書はAccess VBAの各機能を、豊富なプログラミング例を使って、初心者にもわかりやすく、かつ網羅的に解説しています。また、やりたいことを目的別に簡単に探せる「逆引き」の構成になっています。
スポンサード リンク
文字列操作
- Asc 関数
- Chr 関数
- Filter 関数
- FormatCurrency 関数
- FormatDateTime 関数
- FormatNumber 関数
- FormatPercent 関数
- InStr 関数
- InStrRev 関数
- Join 関数
- Split 関数
- LCase 関数
- UCase 関数
- Len 関数
- Left 関数
- Mid 関数
- Right 関数
- LTrim 関数
- RTrim 関数
- Trim 関数
- Replace 関数
- Space 関数
- String 関数
- StrReverse 関数
- StrComp 関数
日付処理
- Now 関数
- Date 関数
- Time 関数
- Timer 関数
- DateAdd 関数
- DateDiff 関数
- Year 関数
- Month 関数
- Day 関数
- Hour 関数
- Minute 関数
- Second 関数
- Weekday 関数
- DatePart 関数
- MonthName 関数
- WeekdayName 関数
- DateSerial 関数
- TimeSerial 関数
- DateValue 関数
- TimeValue 関数
数値演算
- Abs 関数
- Sqr 関数
- Fix 関数
- Int 関数
- Round 関数
- Rnd 関数
- Exp 関数
- Log 関数
- Sgn 関数
- Hex 関数
- Oct 関数
- Atn 関数
- Cos 関数
- Sin 関数
- Tan 関数
- 超越関数










