[VBA] Left関数, Right関数, Mid関数で文字列を取得します

 今回は VBA でデータベースなどを作成するときに、とてもよく使われる Left関数, Right関数, Mid関数 について紹介しますよ~。特に難しい関数ではないので「へえ。こういうふうにやるんだ~」て感じで、軽く読み流してくださいな~。

Left関数, Right関数, Mid関数で文字列を取得します

 関数の構文をあれこれ説明するよりも実例を見た方が早いので、最初にマクロを載せておきますよ~。

 Option Base 1

 '文字を抜き出しますよ~

 Sub StringTest()

 Dim i As Integer
 Dim myword As String
 Dim mystr(4) As String

 myword = "ABCDEFGH"

 '左から3文字を抜き出します
 mystr(1) = Left(myword, 3)

 '右から6文字を抜き出します
 mystr(2) = Right(myword, 6)

 '5文字目以降を抜き出します
 mystr(3) = Mid(myword, 5)

 '2文字目から4文字抜き出します
 mystr(4) = Mid(myword, 2, 4)

 For i = 1 To 4
  Debug.Print mystr(i),
 Next i

 End Sub

 文字列型変数 myword に ABCDEFGH という 8 個のアルファベットを用意して、配列変数 mystr(i) に抜き出した文字を入れていきます。

mystr(1) = Left(myword, 3)

は ABCDEFGH の左から 3 文字 ABC を取り出します。

mystr(2) = Right(myword, 6)

は ABCDEFGH の右から 6 文字 CDEFGH を取り出します。

mystr(3) = Mid(myword, 5)

は ABCDEFGH の 5 文字目以降 EFGH を取り出します。

mystr(4) = Mid(myword, 2, 4)

は ABCDEFGH の 2 文字目から 4 文字 BCDEを取り出します。

Left関数, Right関数

 Left関数は

Left(文字列,取り出す文字の長さ)

によって [文字列] の左から文字を取り出します。Right関数は

Right(文字列,取り出す文字の長さ)

と書いて [文字列] の右から文字を取り出します。戻り値は Variant 型 (内部処理形式 String の Variant) となります。

Mid関数

 Mid関数 は文字列からひと連なりの文字を抜き出します。
 次のような構文で記述します。

Mid(文字列,開始位置,[取り出す文字の長さ])

 [文字列] で抜出対象となる文字を指定します。数字、アルファベット、日本語のいずれでも指定することができます。戻り値は Variant 型 (内部処理形式 String の Variant) です。

 [開始位置] で取り出す位置を数値で指定します。文字列の先頭を 1 として、そこから何文字目かを指定することになります。指定した数値が文字列の数を超えている場合は長さ 0 の文字列 "" を返します。

 [取り出す文字の長さ] で、指定した [開始位置] から何文字取り出すかを指定します。この引数はオプションなので省略できます。もし省略した場合は開始位置から残り全ての文字を取り出します。

 たとえば「あいうえお」から「うえ」という文字を取り出すときは

Mid("あいうえお",3,2)

と記述します。対象となる文字列に数字でなく、アルファベットや日本語を指定するときは文字列を "" で囲んでおく必要があります。ただし別のところで

moji="あいうえお"

というようにデータを格納してある場合は

Mid(moji,3,2)

というように記述することができます(おそらくこういう記述の仕方が一般的です)。
 

文字を抜き出すマクロです

 「言葉の工房あとりえこばと」という文字列から部分的に文字を取り出しますよ~。

 '言葉の工房あとりえこばと

 Sub 文字抽出()

 Dim moji As String
 Dim m1 As String, m2 As String

 moji = "言葉の工房あとりえこばと"
 m1 = Mid(moji, 1)
 m2 = Mid(moji, 10, 12)

 Debug.Print m1, m2

 End Sub

 マクロを実行すると m1 と m2 に格納された

言葉の工房あとりえこばと こばと

と表示されます。m1 は先頭から全ての文字を、m2 は左から 10 ~ 12 文字を抜き出して表示しているのです。ふい~。今回も長かったですね~。ちょっと疲れちゃったので、今日はこのへんで~。

スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)