文字列から指定した文字数の文字列を、バリアント型 (内部処理形式 String の Variant) で返します。
構文
Mid( string, start [, length ] )
Mid 関数構文の引数は次のとおりです。
引数 |
説明 |
string |
必須。 返される文字列の基になる文字列式です。 string が Null の場合は、Null 値が返されます。 |
start |
必須。 Long。 string 内で、文字の取得を開始する文字位置です。 start が string の文字数を超える場合、Mid 関数は長さ 0 の文字列 ("") を返します。 |
length |
省略可能。 Variant (Long)。 取得する文字数です。 省略した場合、またはテキスト内の start 位置以降の文字数が length より少ない場合は、start 位置から文字列の末尾までのすべての文字が返されます。 |
解説
string 内の文字数を決定するには、Len 関数を使用します。
注: 文字列に含まれるバイト データには、2 バイト文字セット言語と同じように、MidB 関数を使います。 文字数を指定するのではなく、バイト数を引数で指定します。 MidB を使うサンプル コードについては、「例」の 2 番目の例をご覧ください。
クエリの例
式 |
結果 |
SELECT ProductID, Mid(ProductID,5) AS Expr1 FROM ProductSales; |
文字位置 5 から始まる ProductID と ProductID の部分を返し、結果を列 Expr1 に表示します。 |
SELECT ProductID, Mid(ProductID,5,4) AS testMid FROM ProductSales; |
"ProductID" と、4 文字を含む文字位置 5 から始まる ProductID の部分を返し、結果を列 testMid に表示します。 |
VBA の例
注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。
1 番目の例では、Mid 関数を使って、文字列から指定した数の文字を取得します。
Dim MyString, FirstWord, LastWord, MidWords
MyString = "Mid Function Demo" ' Create text string. FirstWord = Mid(MyString, 1, 3) ' Returns "Mid". LastWord = Mid(MyString, 14, 4) ' Returns "Demo". MidWords = Mid(MyString, 5) ' Returns "Function Demo".
2 番目の例では、MidB 関数とユーザー定義関数 (MidMbcs) を使って、やはり文字列から文字を取得します。 違いは、入力文字列が ANSI であり、長さがバイト数であることです。
Function MidMbcs(ByVal str as String, start, length)
MidMbcs = StrConv(MidB(StrConv(str, vbFromUnicode), _ start, length), vbUnicode) End Function Dim MyString MyString = "AbCdEfG" ' Where "A", "C", "E", and "G" are DBCS and "b", "d", ' and "f" are SBCS. MyNewString = Mid(MyString, 3, 4) ' Returns ""CdEf" MyNewString = MidB(MyString, 3, 4) ' Returns ""bC" MyNewString = MidMbcs(MyString, 3, 4) ' Returns "bCd"