【Excel VBA】文字列を抜き出す関数(Mid、Left、Right)

当ページのリンクには広告が含まれている可能性があります。
文字列を抜き出す

こんにちは、ユーキです。

今回は、VBAで文字列を抜き出す関数(Mid、Left、Right)を紹介します。

目次

文字列を抜き出す関数

文字列を抜き出す関数はいくつかあります。ひとつずつ紹介したいと思います。

任意の位置の文字数を抜き出す(Mid関数)

いちばんオーソドックスな方法が、Mid関数を使う方法になります。

Dim txt As String
txt = Mid("こんにちは", 2, 1)
MsgBox txt

上記の処理を実行すると、「ん」が表示されます。

解説をすると、Mid関数の第1引数は対象文字列、第2引数が何番目の文字から取得するか、第3引数が何文字取得するか、になります。

さきほどのサンプルコードの「Mid(“こんにちは”, 2, 1)」を例にすると、「こんにちは」という文字列から、2番目の文字から1文字取得するという命令になり、戻り値は「ん」が返ります。

第3引数は取得する文字数で省略が可能で、第3引数を省略した場合、指定した文字数の最後までを取得するという指定になります。「Mid(“こんにちは”, 3)」とした場合、戻り値は「にちは」となります。

第2引数に、指定文字よりも大きい値を指定した場合、戻り値は「””(長さ0の文字列:いわゆる空文字)」となります。例えば、Mid(“こんにちは”, 7, 2)のような指定の仕方が該当します。まだ、第2引数は1以上の数値でなければならず、0や-1などを指定するとエラーとなります。

先頭から指定文字数抜き出す(Left関数)

先頭から指定文字数抜き出すことは、Mid関数でも指定は可能ですが、Left関数で取得することも可能です。

Dim txt As String
txt = Left("こんにちは", 3)
MsgBox txt

上記の処理を実行すると、「こんに」が表示されます。

Left関数もMid関数とほぼ同じです。何文字目から取得するかを指定する引数がないだけになります。

第1引数で対象文字列、第2引数で抜き出す文字数を指定します。

末尾から指定文字数抜き出す(Right関数)

Right関数も、Left関数、Mid関数とほぼ同じです。末尾から何文字取得するかを指定して、文字を抜き出す関数になります。

Dim txt As String
txt = Right("こんにちは", 2)
MsgBox txt

上記の処理を実行すると、「ちは」が表示されます。

抜き取る文字数をバイト数で指定する関数

文字数ではなく、バイト数で抜き出す関数もあります。それぞれ、MidB関数、LeftB関数、RightB関数となります。末尾に「B」が付く形になります。

Dim txt As String
txt = MidB("こんにちは", 3, 2) ’3バイト目から2バイトを抜き出す
Debug.Print txt ’「ん」が出力される
txt = LeftB("こんにちは", 4) ’4バイト目までを抜き出す
Debug.Print txt ’「こん」が出力される
txt = RightB("こんにちは", 6) ’文末から6バイト目を抜き出す
Debug.Print txt ’「にちは」が出力される

上記はすべて、「バイト数」での指定となります。「MidB(“こんにちは”, 3, 2)」の場合、3バイト目から2バイトを抜き出すとなります。

文字の途中で抜き出しができない場合は、エラーにはなりませんが、正しい文字列は取得されなくなります。

まとめ

今回は、文字列を抜き出す関数(Mid、Left、Right)についての紹介でした。

Point
  • 汎用的な文字列抜出は、Mid関数
  • 先頭から文字を抜き出す場合は、Left関数
  • 末尾から文字を抜き出す場合は、Right関数
  • バイト数で抜き出ししたい場合には、MidB関数、LeftB関数、RightB関数

少しでもお役に立てば、幸いです。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

旅好き職業プログラマ。文系大学卒業後、ITソフトウエア開発会社に勤務してプログラミング言語を学ぶ。現在は転職し、プロジェクトマネージャ的ポジションで生産管理システムの開発にあたる。
得意言語は、VB、VB.NET、C#.NET、Java、SQLなど。

目次