|
|
|
■StrComp 関数
文字列比較の結果を表すバリアント型 (内部処理形式 String の Variant) の値を返します。
構文
StrComp(string1, string2[, compare])
StrComp 関数の構文は、次の名前付き引数から構成されます。
| 指定項目 |
内容 |
| string1 |
必ず指定します。任意の 文字列式を指定します。 |
| string2 |
必ず指定します。任意の文字列式を指定します。 |
| compare |
省略可能です。文字列比較のモードを指定する番号を設定します。
名前付き 引数 compare が Null 値の場合は、エラーが発生します。 compare を省略すると、Option Compare ステートメントの設定により比較モードが決まります。 |
設定値
引数 compare の設定値は次のとおりです。
| 定数 |
値 |
説明 |
| vbUseCompareOption |
-1 |
Option Compare ステートメントの設定を使用して比較を行います。 |
| vbBinaryCompare |
0 |
バイナリ モードの比較を行います。 |
| vbTextCompare |
1 |
テキスト モードの比較を行います。 |
| vbDatabaseCompare |
2 |
Microsoftデータベースに格納されている設定に基づいて比較を行います。 Access の場合のみ有効。 |
戻り値
StrComp 関数の戻り値は次の通りです。
| 内容 |
戻り値 |
| string1 は string2 未満 |
-1 |
| string1 と string2 は等しい |
0 |
| string1 は string2 を超える |
1 |
| string1 または string2 は Null 値 |
NULL値 |
用法
dim rcd as variant
 |
|
■StrConv 関数
変換した文字列をバリアント型 (内部処理形式 String の Variant) で返します。
構文
StrConv(string, conversion, LCID)
StrConv 関数の構文は、次の
名前付き引数から構成されます。
| 指定項目 |
内容 |
| string |
必ず指定します。変換する 文字列式を指定します。 |
| conversion |
必ず指定します。 整数型 (Integer) の値を指定します。実行する変換の種類の値の合計を指定します。 |
| LCID |
省略可能です。システムとは異なる国別情報識別子 (LCID) を指定できます。既定値はシステムが使用する LCID です。 |
設定値
名前付き
引数 conversion には、次のいずれかの定数または値を指定します。
| 定数 |
値 |
説明 |
| vbUpperCase |
1 |
文字列を大文字に変換します。 |
| vbLowerCase |
2 |
文字列を小文字に変換します。 |
| vbProperCase |
3 |
文字列の各単語の先頭の文字を大文字に変換します。 |
| vbWide* |
4* |
文字列内の半角文字 (1 バイト) を全角文字 (2 バイト) に変換します。 |
| vbNarrow* |
8* |
文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。 |
| vbKatakana** |
16** |
文字列内のひらがなをカタカナに変換します。 |
| vbHiragana** |
32 |
文字列内のカタカナをひらがなに変換します。 |
| vbUnicode |
64 |
システムの既定のコード ページを使って文字列を Unicode に変換します。 |
| vbFromUnicode |
128 |
文字列を Unicode からシステムの既定のコード ページに変換します。 |
* 国別情報の設定が中国、韓国、および日本の場合に適用されます。
** 国別情報の設定が日本の場合のみ有効です。
メモ これらの
定数は Visual Basic で定義されているものです。したがって、コードの中の任意の場所で、実際の値の代わりに
使用できます。
通常、定数は互いに矛盾しない限り、組み合わせて指定できます。
たとえば、定数 vbUpperCase と vbWide を組み合わせることはできます。
しかし、定数 vbUnicode と vbFromUnicode は指定内容が矛盾するため、組み合わせることはできません。
また、不適切な場所で定数 vbWide、vbNarrow、vbKatakana、および vbHiragana を指定した場合は、実行時エラーが
発生します。
大文字/小文字を正しく区別する単語セパレータは、
Null 値 (Chr$(0))、水平タブ (Chr$(9))、ライン フィード (Chr$(10))、垂直タブ (Chr$(11))、フォーム フィード (Chr$(12))、
キャリッジ リターン (Chr$(13))、およびスペース (SBCS の場合) (Chr$(32)) です。
DBCS のスペースの実際の値は、国によって異なります。
解説
ANSI 形式のバイト型配列を文字列に変換する場合は、StrConv 関数を使用してください。
Unicode 形式の配列を変換する場合は、代入式を使用してください。
用法
基本的には Shift-JIS の文字列は VB では直接扱うことができませんので、StrConv 関数などで Unicode に変換します。
Dim staB(13) As Byte
Dim varStr As String
Dim strUni As String
'SJISコードを配列にセット
staB(0) = &H82
staB(1) = &HD6
staB(2) = &H82
staB(3) = &HF1
staB(4) = &H82
staB(5) = &HA9
staB(6) = &H82
staB(7) = &HF1
staB(8) = &H20
staB(9) = &HCD
staB(10) = &HDD
staB(11) = &HB6
staB(12) = &HDD
'配列から文字列に変換
varStr = staB
'SJISコードからUnicodeに変換
strUni = strConv(varStr, vbUnicode)
'変換文字の画面表示
MsgBox "SJIS文字列表示(変換前):" & varStr
MsgBox "UniCode文字列表示(変換後)" & strUni |
|
■MsgBox 関数
整数型 (Integer) の値を返します。ダイアログ ボックスにメッセージを表示し、ボタンがクリックされるのを待って、どのボタンがクリックされたのかを示す値を返します。
構文
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
MsgBox 関数の構文は、次の名前付き引数から構成されます。
| 指定項目 |
内容 |
| prompt |
必ず指定します。ダイアログ ボックス内にメッセージとして表示する文字列を示す 文字列式を指定します。
名前付き引数 prompt に指定できる最大文字数は、1 バイト文字で約 1,024 文字です。
ただし、使う文字の文字幅に依存します。
名前付き引数 prompt に複数行を指定する場合は、キャリッジ リターン (Chr(13))、ライン フィード (Chr(10))、またはキャリッジ リターンとライン フィードの組み合わせ (Chr(13) & Chr(10)) を改行する位置に挿入し、行を区切ってください。 |
| buttons |
省略可能です。
表示されるボタンの種類と個数、使用するアイコンのスタイル、標準ボタン、メッセージ ボックスがモーダルかどうかなどを表す値の合計値を示す 数式を指定します。
省略すると、名前付き引数 buttons の既定値 0 になります。 |
| title |
省略可能です。ダイアログ ボックスのタイトル バーに表示する文字列を示す文字列式を指定します。
名前付き引数 title を省略すると、タイトル バーにはアプリケーション名が表示されます。 |
| helpfile |
省略可能です。
ダイアログ ボックスに状況依存のヘルプを設定するために、使用するヘルプ ファイルの名前を示す文字列式を指定します。
この引数は、表示するダイアログ ボックスの説明をヘルプを使って表示するときに指定します。
名前付き引数 helpfile を指定した場合は、引数 context も指定する必要があります。 |
| context |
省略可能です。ヘルプ トピックに指定したコンテキスト番号を表す数式を指定します。
名前付き引数 context を指定した場合は、引数 helpfile も指定する必要があります。 |
設定値
名前付き
引数 buttons には、次の値のうち、該当する値の合計値を指定します。
| 定数 |
値 |
内容 |
| vbOKOnly |
0 |
[OK] ボタンのみを表示します。 |
| vbOKCancel |
1 |
[OK] ボタンと [キャンセル] ボタンを表示します。 |
| vbAbortRetryIgnore |
2 |
[中止]、[再試行]、および [無視] の 3 つのボタンを表示します。 |
| vbYesNoCancel |
3 |
[はい]、[いいえ]、および [キャンセル] の 3 つのボタンを表示します。 |
| vbYesNo |
4 |
[はい] ボタンと [いいえ] ボタンを表示します。 |
| vbRetryCancel |
5 |
[再試行] ボタンと [キャンセル] ボタンを表示します。 |
| vbCritical |
16 |
警告メッセージ アイコンを表示します。 |
| vbQuestion |
32 |
問い合わせメッセージ アイコンを表示します。 |
| vbExclamation |
48 |
注意メッセージ アイコンを表示します。 |
| vbInformation |
64 |
情報メッセージ アイコンを表示します。 |
| vbDefaultButton1 |
0 |
第 1 ボタンを標準ボタンにします。 |
| vbDefaultButton2 |
256 |
第 2 ボタンを標準ボタンにします。 |
| vbDefaultButton3 |
512 |
第 3 ボタンを標準ボタンにします。 |
| vbDefaultButton4 |
768 |
第 4 ボタンを標準ボタンにします。 |
| vbApplicationModal |
0 |
アプリケーション モーダルに設定します。メッセージ ボックスに応答するまで、現在選択中のアプリケーションの実行を継続できません。 |
| vbApplicationModal |
4096 |
システム モーダルに設定します。メッセージ ボックスに応答するまで、すべてのアプリケーションが中断されます。 |
| vbSystemModal |
16384 |
ヘルプ ボタンを追加します。 |
| vbMsgBoxHelpButton |
65536 |
最前面のウィンドウとして表示します。 |
| VbMsgBoxSetForeground |
524288 |
テキストを右寄せで表示します。 |
| vbMsgBoxRtlReading |
1048576 |
テキストを、右から左の方向で表示します。 |
最初のグループに属する値 (0 〜 5) は、ダイアログ ボックスに表示されるボタンの種類と個数を指定します。
次のグループに属する値 (16、32、48、64) は、アイコンの種類を指定します。
第 3 のグループに属する値 (0、256、512) は、どのボタンが標準ボタンになるかを指定します。
最後のグループに属する値 (0、4096) は、メッセージ ボックスがモーダルかどうかを指定します。
名前付き引数 buttons の値を設定するには、各グループから値を 1 つずつ選択して加算した合計値を指定します。
メモ ここに示した
定数は Visual Basic for Applications で設定されています。したがって、これらの定数はコード内の任意の場所で実際の値を記述する代わりに使用できます。
戻り値
| 定数 |
値 |
説明 |
| vbOK |
1 |
[OK] |
| vbCancel |
2 |
[キャンセル] |
| vbAbort |
3 |
[中止] |
| vbRetry |
4 |
[再試行] |
| vbIgnore |
5 |
[無視] |
| vbYes |
6 |
[はい] |
| vbNo |
7 |
[いいえ] |
解説
名前付き引数 helpfile および context を指定すると、F1 キーを押すことにより、コンテキスト番号に対応したヘルプ トピックを参照できます。
ホスト アプリケーションによっては、自動的に [ヘルプ] ボタンが追加されます。
[キャンセル] ボタンが表示されているダイアログ ボックスでは、Esc キーを押すと、[キャンセル] ボタンをクリックしたときと同じ結果になります。
ダイアログ ボックスに [ヘルプ] ボタンが表示されているときは、そのダイアログ ボックスには状況依存のヘルプが設定されています。
ただし、[ヘルプ] ボタン以外のボタンがクリックされるまでは、値を返しません。
メモ 名前付き引数 prompt 以外の引数も指定する場合は、式の中で MsgBox 関数を使う必要があります。
この場合、引数を省略するには、それに対応するカンマ区切り記号を記述します。
用法
Ret = MsgBox(#エラーが発生しました:# & Chr$(13) & #エラー内容 = # & Result_txt & Chr$(13) & _
#再テストしますか?#, vbYesNo, ##)
If Ret = vbYes Then |
|
■Split 関数
機能
各要素ごとに区切られた文字列から 1 次元配列を作成し、返します。
構文
Split(expression[, delimiter[, count[, compare]]])
Split 関数の構文は、次の指定項目から構成されます。
| 指定項目 |
内容 |
| expression |
必ず指定します。
文字列と区切り文字を含んだ 文字列式を指定します。
引数 expression が長さ 0 の文字列 ("") である場合、Split 関数は、要素もデータもない空の配列を返します。 |
| delimiter |
省略可能です。
文字列の区切りを識別する文字を指定します。
引数 delimiter を省略すると、区切り文字にスペース (" ") が使用されます。
引数 delimiter が長さ 0 の文字列 ("") である場合は、引数 expression 全体の文字列を含む単一の要素の配列を返します。 |
| count |
省略可能です。
返す配列の要素数を指定します。
-1 を指定すると、すべての文字列を含んだ配列を返します。 |
| compare |
省略可能です。
文字列式を評価するときに使用する文字列比較のモードを表す数値を指定します。
設定する値については、次の「設定値」を参照してください。 |
設定値
引数 compare の設定値は次のとおりです。
| 定数 |
値 |
説明 |
| VbUseCompareOption |
-1 |
Option Compare ステートメントの設定を使用して比較を行います。 |
| vbBinaryCompare |
0 |
バイナリ モードで比較を行います。 |
| vbTextCompare |
1 |
テキスト モードで比較を行います。 |
| vbDatabaseCompare |
2 |
Microsoft Access の場合のみ有効。データベースに格納されている設定に基づいて比較を行います。 |
用法
Dim asi_tab() As String
If strAaa <> "" Then
asi_tab() = Split(strAaa, #,#, -1, vbTextCompare)
Else
asi_tab() = Split(#,,,,,,,,#, #,#, -1, vbTextCompare)
End If
|
|
■Mid 関数
バリアント型 (内部処理形式 String の Variant) の値を返します。文字列から指定した文字数分の文字列を返します。
構文
Mid(string, start[, length])
Mid 関数の構文は、次の名前付き引数から構成されます。
| 指定項目 |
内容 |
| string |
必ず指定します。
文字列を取り出す、元の文字列式を指定します。名前付き引数stringにNull値が含まれている場合は、Null値を返します。 |
| start |
t必ず指定します。
長整数型(Long)の値を指定します。
名前付き引数stringの先頭の位置を1として、どの位置から文字列を取り出すかを先頭からの文字数で指定します。
startがstringの文字数を超える場合、Mid関数は長さ0の文字列("")を返します。 |
| length |
省略可能です。
バリアント型(内部処理形式Long)の値を指定します。取り出す文字数を指定します。
名前付き引数lengthを省略した場合、または文字列内にlengthより短い文字数しかない場合には、startから後のすべての文字が返されます。 |
解説
名前付き引数 string の文字数を決定するときに Len 関数を使用します。
メモ 文字列をバイト データとして扱う場合は、MidB 関数を使用します。MidB 関数はバイト単位で文字列を取り出します。
MidB 関数には、文字数でなく、バイト数を指定します
|
|
■InStr 関数
バリアント型 (内部処理形式 Long の Variant) の値を返します。
ある文字列 (string1) の中から指定した文字列 (string2) を検索し、
最初に見つかった文字位置 (先頭からその位置までの文字数) を返す文字列処理関数です。
構文
InStr([start, ]string1, string2[, compare])
Instr 関数の構文は、次の引数から構成されます。
| 指定項目 |
内容 |
| start |
省略可能です。
検索の開始位置を表す 数式を指定します。
省略すると、先頭の文字から検索されます。
引数 start に Null 値が含まれている場合、エラーが発生します。
引数 compare を指定した場合は、start も指定する必要があります。 |
| string1 |
必ず指定します。検索対象となる 文字列式を指定します。 |
| string1 |
必ず指定します。引数 string1 内で検索する文字列式を指定します。 |
| compare |
省略可能です。 文字列比較の比較モードを指定する番号を設定します。
引数 compare が Null 値の場合は、エラーが発生します。
引数 compare を指定した場合は、引数 start も指定する必要があります。
引数 compare を省略すると、Option Compare ステートメントの設定に応じて、比較モードが決まります。 |
設定値
引数 compare の設定値は次のとおりです。
| 定数 |
値 |
説明 |
| vbUseCompareOption |
-1 |
Option Compare ステートメントの設定を使用して比較を行います。 |
| vbBinaryCompare |
0 |
バイナリ モードの比較を行います。 |
| vbTextCompare |
1 |
テキスト モードの比較を行います。 |
| vbDatabaseCompare |
2 |
Microsoft Access の場合のみ有効。 |
戻り値
| 内容 |
値 |
| string1 が長さ 0 の文字列 ("") のとき |
0 |
| string1 が Null 値のとき |
Null 値 |
| string2 が長さ 0 の文字列 ("") のとき |
start |
| string2 が Null 値のとき |
Null 値 |
| string2 が見つからないとき |
0 |
| string2 が string1 内で見つかったとき |
見つかった文字列の位置 |
| start の値が string1 の文字数を超えるとき |
0 |
解説
文字列をバイト データとして扱う場合は、InStrB 関数を使用します。InStrB 関数は検索結果をバイト位置 (先頭からその位置までのバイト数) で返します。
用法
InStr 関数の使用例
次の例は、InStr 関数を使って、ある文字列の中から指定した文字列を検索し、最初に見つかった位置を返します。
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' 検索対象の文字列を定義します。
SearchChar = "P" ' "P" を検索します。
' 文字単位の比較を位置 4 から開始すると、6 が返されます。
MyPos = Instr(4, SearchString, SearchChar, 1)
' ビット単位の比較を位置 1 から開始すると、9 が返されます。
MyPos = Instr(1, SearchString, SearchChar, 0)
' 既定のビット単位の比較を行います(最後の引数を省略した場合)。
MyPos = Instr(SearchString, SearchChar) ' 9 を返します。
MyPos = Instr(1, SearchString, "W") ' 0 を返します。 |
|