【Excel VBA】文字列の切り取り

【Excel VBA】文字列の切り取り

文字列の切り取りでよく使用される関数は3つあります。
今回はその3つの関数を紹介します。

左から指定文字分切り取る(Left関数)

まずは左端から文字列を切り取るLeft関数についです。
Left関数の構文は以下の通りです。

Left(切り取る文字列, 切り取る文字数)

では、サンプルコードと一緒にその結果も見てみましょう。

Sub Sample01()
    Range("A1").Value = Left("あいうえお", 3)
End Sub

実行結果01

上記のようにLeft関数は文字列を切り取った結果を返します。
今回はセルに直接値を設定するようにしています。

また、文字数は0より小さい値は指定できず、0より小さい値を指定すると以下のように「プロシージャの呼び出し、または引数が鵜性です。」というエラーメッセージが表示されます。

負数指定時のエラー

ちなみに文字数に0を指定すると結果は0文字の長さの文字列が返ってきます。

右から指定文字分切り取る(Right関数)

次は右端から文字列を切り取るRight関数についです。
Right関数の構文は以下の通りです。

Right(切り取る文字列, 切り取る文字数)

では、サンプルコードと一緒にその結果も見てみましょう。

Sub Sample02()
    Range("A1").Value = Right("あいうえお", 3)
End Sub

実行結果02

上記のようにRight関数も文字列を切り取った結果を返します。
今回もセルに直接値を設定するようにしています。

注意事項はLeft関数と同じです。

任意の箇所の文字を切り取る(Mid関数)

次は任意の箇所の文字を切り取るMid関数についです。
Mid関数の構文は以下の通りです。

Mid(切り取る文字列, 開始位置, [切り取る文字数]) 

上記で[ ]で囲っているのは任意項目を表します。
Excel VBAでは任意項目をこのように[ ]で表したリファレンスとなっているので覚えておきましょう。
ちなみに「切り取る文字数」を省略すると、「開始位置」以降の全ての文字列を切り取ります。

では、サンプルコードと一緒にその結果も見てみましょう。

Sub Sample03()
    Range("A1").Value = Mid("あいうえお", 2, 2)
    Range("B1").Value = Mid("あいうえお", 3)
End Sub

実行結果03

上記のようにMid関数も文字列を切り取った結果を返します。
今回もセルに直接値を設定するようにしています。

また上記のサンプルのようにA1セルに設定された値は「あいうえお」を2文字目から2文字分切り取った「いう」となっています。

B1セルに設定された値は「あいうえお」を3文字目以降を全て切り取った「うえお」となっています。

ちなみに「開始位置 + 切り取る文字数 – 1」が切り取る文字列の最後尾以降になった場合は、「切り取る文字数」を指定していないのと同じ動きになります。

まとめ

Left関数 左端から切り取る Left(切り取る文字列, 切り取る文字数) Left(“ABCDE”, 2) → “AB”
Right関数 右端から切り取る Right(切り取る文字列, 切り取る文字数) Right(“ABCDE”, 2) → “DE”
Mid関数 任意の箇所から切り取る Mid(切り取る文字列, 開始位置, [切り取る文字数]) Mid(“ABCDE”, 2, 2) → “BC”

Mid(“ABCDE”, 2) → “BCDE”

Mid(“ACDE”, 2, 5) → “BCDE”

文字列の切り取りはInStr関数やLen関数なども併用して使うことが多いですが、Left関数やRight関数、Mid関数は文字列の切り取りの基本なのでしっかりと覚えておきましょう。

では、Excel VBAを使用した自動化ライフを楽しみましょう♪

Excelでの自動化や省力化に関するお問い合わせはこちらからお待ちしております。
LancersMENTAでも活動していますので、そちらからお仕事を依頼して頂けます。