VBAのLeft関数とは?文字列を操作するために知っておきたいLeft関数の使い方
ある文字列の中から、一部の文字を取り出して使いたいことはありませんか。
そんな時には、Mid関数、Left関数、Right関数等を利用すると、特定の文字列を取り出すことができます。
ここでは、「文字列の先頭から指定した数の文字を取り出したい」場合に利用する、Left関数について説明します。
目次
1.Left関数について
1-1.Left関数とは
Left関数とは、VBAの文字列操作の1つです。Left関数は、文字列の先頭から、指定した数の文字列を取り出して返します。
固定長のファイルなどで、取り出したい文字列の開始位置や文字数が決まっているときには便利ですが、取り出したい文字列が何文字目から開始しているのかを知りたい場合は、「2-4.ほかの関数と組み合わせた使用例」をご参照ください。
1-2.Left関数の構文
Left(文字列,文字数)
文字列・文字数ともに、省略不可能です。
2.Left関数の使用例
2-1.基本的な使用例
Left("あいうえabc",3)
実行結果: あいうえa
解説:「あいうえabc」の先頭から5文字を返します。
Left("あいうえabc",5)
実行結果: あいうえa
解説:「あいうえabc」の先頭から5文字を返します。
※Left関数では、全角・半角の区別をつけずに、1文字としてカウントします。
2-2.特殊な書き方をした場合の実行結果
Left("あいうえabc",0)
実行結果: (空文字)
解説:文字数に0を指定した場合、空文字を返します。
Left("あいうえabc",10)
実行結果:あいうえabc
解説:文字数に、文字列全体の長さより大きな数字を指定した場合、全文字列を返します。
2-3.その他使用例
取り出したい文字列数が一定でない場合は、InStr関数を利用して、キーとなる文字の位置を取得します。
文字列より、都道府県名(ここでは県名)を取り出したい場合を例に説明します。
まず、「県」の文字が先頭から何文字目にあるかをカウントします。
Instr(1,"千葉県成田市","県") InStr (1,"神奈川県横浜市","県")
実行結果:3
4
ここでLeft関数を使用し、文字列より県名を取り出します。
Left("千葉県成田市", 3) Left("神奈川県横浜市", 4)
実行結果:千葉県
神奈川県
これらの関数を組み合わせると
Left("千葉県成田市", Instr(1,"千葉県成田市","県")) Left("神奈川県横浜市", InStr (1,"神奈川県横浜市","県"))
実行結果:千葉県
神奈川県
となります。
※補足1:上記を、Left関数ではなく、Mid関数を用いて行うと
Mid("千葉県成田市", 1,Instr(1,"千葉県成田市","県")) Mid("神奈川県横浜市",1, InStr (1,"神奈川県横浜市","県"))
実行結果:千葉県
神奈川県
となります。
3.LeftB関数について
文字列をバイトデータとして扱いたい場合は、LeftB関数を使用します。LeftB関数は文字列内の指定位置から指定したバイト数分の文字列を返します。構文はLeft関数と同じです。
ただし、VBAでは全角も半角も1文字を2バイトとしてカウントするため、文字数の指定には注意が必要です。
LeftB("あいうえabc",4)
実行結果: あい
解説:「あいうえabc」の先頭から4バイト(2文字)を返します。
LeftB("abcde",4)
実行結果: ab
解説:「abcde」のの先頭から4バイト(2文字)を返します。
4.さいごに
以上、Left関数について、基本的な構文と使用例をまとめました。
Left関数とLeftB関数に関しては、用途を明確にした上で、使い分けてください。
コメント