教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】Right関数の使い方がわからないです。教えて!

f:id:m_kbou:20200420095942p:plain

Right関数は文字列の右端から指定文字数分だけを抜き出す場合に使用します。Right関係の関数にはRight関数とRightB関数の2種類があります。このRight関数の使い方について紹介します。

 

 

構文

記述方法は以下の通りとなります。

(1)Right関数の記述方法

Right[文字列][桁数]

[説明]:

[文字列]には抜き出す対象文字を記述します。[桁数]には右端から抜き出す桁を記述します。内容を纏めると、「[文字列]に記述された文字を、右端から[桁数]に指定した桁で抜き出します。」との意味になります。

[記述例]:

Right("おはようございます。", 4)

(2)RightB関数の記述方法

RightB[文字列][バイト数]

[説明]:

[文字列]には抜き出す対象文字を記述します。[バイト数]には右端から抜き出すバイト数を記述します。内容を纏めると、「[文字列]に記述された文字を、右端から[バイト数]に指定したバイト数で抜き出します。」との意味になります。

[記述例]:

RightB("おはようございます。", 2)

 

使い方

使い方について具体的に説明していきます。

Right関数の使い方

Right関数の使い方について説明します。

(1)基本的な使い方

基本的な使い方について説明します。

[プログラミング例]:

Sub サンプル()
    MsgBox Right("おはようございます。", 4)
End Sub

内容は、「”おはようございます。”の文字列に対し、下4桁の文字を抽出し、MsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210217082455p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※<ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210224073921p:plain

②結果は以下の様に表示されます。指定した文字列「おはようございます。」の下4文字である「います。」が抽出され表示されます。

f:id:m_kbou:20190529115844p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

基本的な使い方についての説明は以上です。

(2)ループ処理と組み合わせた使い方

For~Next文と組み合わせた使い方について説明します。

[プログラミング例]:

Sub サンプル()
    '↓処理①
    Dim 行 As Double
    '↓処理②
    For 行 = 2 To 4
        Range("B" & 行) = Right(Range("A" & 行), 4)
    Next
End Sub

処理の流れは以下の通りとなります。

[処理①]:変数の定義
Dimによる変数定義となります。変数名は「行」となり、入力できる値は「小数を含む数値のみ」となります。

[処理②]:For~Next文の記述
For~Next文による繰り返し処理です。[処理①]で指定した変数:行に2から4の値を順次セットし、処理を3回実行します。1回目の処理では変数:行に2がセットされ、A2セルに入力されている文字列の右端から4文字を抽出しB2セルにセットします。2回目の処理では変数:行に3がセットされ、A3セルに入力されている文字列の右端から4文字を抽出しB3セルにセットします。3回目の処理では変数:行に4がセットされ、A4セルに入力されている文字列の右端から4文字を抽出しB4セルにセットします。

f:id:m_kbou:20210217082600p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210224074211p:plain

②結果は以下の様に表示されます。A列2行目の文字列「おはようございます。」は下4文字である「います。」がB列2行目に、3行目の文字列「こんにちは。」は下4文字である「にちは。」がB列3行目に、4行目の文字列「こんばんは。」は下4文字である「ばんは。」がB列4行目に表示されます。

f:id:m_kbou:20210224074415p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

ループ処理と組み合わせた使い方についての説明は以上です。

 

RightB関数の使い方

RightB関数の使い方について説明します。

(1)基本的な使い方

基本的な使い方について説明します。

[プログラミング例]:

Sub サンプル()
    MsgBox RightB("おはようございます。", 2)
End Sub

内容は、「”おはようございます。”の文字列に対し、下2バイトの文字を抽出し、MsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210217082711p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210224074845p:plain

②結果は以下の様に表示されます。指定した文字列「おはようございます。」の下2バイトである「。」が抽出され表示されます。

f:id:m_kbou:20190529115929p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

基本的な使い方についての説明は以上です。

(2)ループ処理と組み合わせた使い方

For~Next文と組み合わせた使い方について説明します。

[プログラミング例]:

Sub サンプル()
    '↓処理①
    Dim 行 As Double
    '↓処理②
    For 行 = 2 To 4
        Range("B" & 行) = RightB(Range("A" & 行), 4)
    Next
End Sub

処理の流れは以下の通りとなります。

[処理①]:変数の定義
Dimによる変数定義となります。変数名は「行」となり、入力できる値は「小数を含む数値のみ」となります。

[処理②]:For~Next文の記述
For~Next文による繰り返し処理です。[処理①]で指定した変数:行に2から4の値を順次セットし、処理を3回実行します。1回目の処理では変数:行に2がセットされ、A2セルに入力されている文字列の右端から4バイトを抽出しB2セルにセットします。2回目の処理では変数:行に3がセットされ、A3セルに入力されている文字列の右端から4バイトを抽出しB3セルにセットします。3回目の処理では変数:行に4がセットされ、A4セルに入力されている文字列の右端から4バイトを抽出しB4セルにセットします。

f:id:m_kbou:20210217082813p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210224075344p:plain

②結果は以下の様に表示されます。A列2行目の文字列「おはようございます。」は下4バイトである「す。」がB列2行目に、3行目の文字列「こんにちは。」は下4バイトである「は。」がB列3行目に、4行目の文字列「こんばんは。」は下4バイトである「は。」がB列4行目に表示されます。

f:id:m_kbou:20210224075357p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

ループ処理と組み合わせた使い方についての説明は以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

今回はRight関数について説明をしました。類似の関数にはLeft関数Mid関数Instr関数もありますので、是非合わせて覚えて下さい。

 

紹介動画

youtu.be