Mid 関数

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

文字列から指定した文字数の文字列を、バリアント型 (内部処理形式 StringVariant) で返します。

構文

Mid(string, start [, length ] )

Mid 関数構文の引数は次のとおりです。

引数 説明
string 必ず指定します。 文字列が返される文字列式。 string に Null が含まれている場合は、Null が返されます。
start 必須。 Long。 取得する部分が開始される 文字列 内の文字位置。 start文字列内の文字数より大きい場合、Mid は長さ 0 の文字列 ("") を返します。
length 省略可能。 Variant (Long)。 取得する文字数です。 省略した場合、またはテキスト内の 長さ 文字 ( 先頭の文字を含む) が少ない場合は、 開始 位置から文字列の末尾までのすべての文字が返されます。

解説

文字列内の文字数を確認するには、Len 関数を使用します。

文字列に含まれるバイト データには、2 バイト文字セット言語と同じように、MidB 関数を使います。 文字数を指定するのではなく、バイト数を引数で指定します。 MidB を使うサンプル コードについては、「例」の 2 番目の例をご覧ください。

クエリの例

Expression 結果
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 の例

次の 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"

関連項目

文字列関数とその使い方