VBAの全てがここにある!

VBA Right関数について ~関数の解説と使用例~

ENGINEER.CLUB編集部

ENGINEER.CLUB編集部

ある文字列の中から、一部の文字を取り出して使いたいことはありませんか。そんな時には、Mid関数、Left関数、Right関数等を利用すると、特定の文字列を取り出すことができます。ここでは、「文字列の末尾から指定した数の文字を取り出したい」場合に利用する、Right関数について説明します。


1.Right関数について

1-1.Right関数とは

Right関数とは、VBAの文字列操作の1つです。Right関数は、文字列の末尾から、指定した数の文字列を取り出して返します。

取り出したい文字列が、末尾から数えて何文字なのか、文字数が決まっているときには便利ですが、取り出したい文字数が一定でない場合は、2-4.ほかの関数と組み合わせた使用例 をご参照ください。

1-2.Right関数の構文

Right(文字列, 文字数)

文字列・文字数ともに、省略不可能です。


2.Right関数の使用例

2-1.基本的な使用例

Right("あいうえabc",3)

実行結果: abc

解説:「あいうえabc」の末尾から3文字の文字を返します。

Right("あいうえabc",4)

実行結果:えabc

解説:「あいうえabc」の末尾から4文字の文字を返します。

Right関数では、全角・半角の区別をつけずに、1文字としてカウントします。

2-2.特殊な書き方をした場合の実行結果

Right("あいうえabc",0)

実行結果: (空文字)

解説:文字数に0を指定した場合、空文字を返します。

Right("あいうえabc",10)

実行結果:あいうえabc

解説:文字数に、文字列全体の長さより大きな数字を指定した場合、全文字列を返します。

2-3.ほかの関数と組み合わせた使用例

取り出したい文字列数が一定でない場合は、InStr関数を利用して、キーとなる文字の開始位置を取得します。

Test.xlsx」や、「Test.pdf」という文字列の拡張子を抜き出したい場合を例に説明します。まず、これらの文字列は、それぞれ何文字なのか、文字数を数えます。

Len("Test.xlsx")
Len("Test.pdf")

実行結果:9
     8

次に、「.」の文字が先頭から何文字目にあるかをカウントします。

InStr(1, "Test.xlsx",".")
InStr(1, "Test.pdf",".")

実行結果:5
     5

ここで、拡張子、つまり「.」より後ろの文字列(6文字目以降)を取り出すには、「Test.xlsx」は69文字目の4文字、「Test.pdf」は68文字目の3文字を末尾から取り出せば良いということがわかります。

Right("Test.xlsx", 4) 
Right("Test.pdf", 3)

実行結果:xlsx
     pdf

文字数は、それぞれ文字列全体の長さから「.」の位置を引いたもので指定できるので、これらの関数を組み合わせると

Right("Test.xlsx", Len("Test.xlsx")- InStr(1, "Test.xlsx",".")) = xlsx
Right("Test.pdf", Len("Test.pdf")- InStr(1, "Test.pdf",".")) = pdf

実行結果:xlsx
     pdf

となります。

※補足1:上記を、Right関数ではなく、Mid関数を用いて行うと

Mid("Test.xlsx", InStr(1, "Test.xlsx",".")+1) = xlsx
Mid("Test.pdf", InStr(1, "Test.pdf",".")+1) = pdf

実行結果:xlsx
     pdf

となります。

※補足2:「T.e.s.t.xlsx」のように、目的の位置以外にも「.」が含まれる場合、InStr関数を使用して「.」の位置を検索すると2文字目が取り出されてしまいます。そんな場合は、末尾から「.」の位置を検索するInStrRev関数を使用しますが、ここでは省略します。


3.RightB関数について

文字列をバイトデータとして扱いたい場合は、RightB関数を使用します。RightB関数は文字列内の指定位置から指定したバイト数分の文字列を返します。構文はRight関数と同じです。

ただし、VBAでは全角も半角も1文字を2バイトとしてカウントするため、文字数の指定には注意が必要です。

RightB("あいうえabc",2)

実行結果: c

解説:「あいうえabc」の末尾から2バイト(1文字)を返します。

RightB("あいうえabc",3)

実行結果: ?

解説:「あいうえabc」の末尾から3バイトはカウントできず、実行結果が?となります。


4.さいごに

以上、Right関数について、基本的な構文と使用例をまとめました。

Right関数とRightB関数に関しては、用途を明確にした上で、使い分けてください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

公式アカウントLINE限定!ボールドの内定確率が分かる無料診断実施中
公式アカウントLINE限定!
ボールドの内定確率が分かる無料診断実施中