【関数・プロパティ設定をつかう】
1 文字列の左端から一部の文字列を取得
2 文字列の右端から一部の文字列を取得
3 文字列の指定位置から指定文字分の文字列を取得
4 三つの文字列取得関数をつかう
5 文字列の指定位置から1文字を取得
6 文字列の文字数を取得
7 文字列のループで1文字ずつ分解
文字列の右端から一部の文字列を取得
パイさん
「Excel VBA/マクロのRight関数を使うと、対象となる文字列の右端から指定した文字数分の文字列を取り出す
ことができます。Right関数の構文は、次のようになります。」
パイさん
「Right関数では、
第1引数:Stringに対象となる文字列式
第2引数:Lengthに取得したい文字数を入れると、
戻り値として、対象となる文字列の右端から指定した文字数分の文字列を取り出す
ことができます。」
(1) 取り出した文字列
パイさん
「『セルを思いのままに動かそう』という文字列の右端から1文字分の文字列を取り出して
セルA2に格納してみましょう。
予め、次のようなExcelシートを用意します。」
ソンくん
「早速、Right関数をつかってみます。
『セルを思いのままに動かそう』の右端から『1』文字分の文字列を取り出して
セルA2に格納するのだから、
左辺には、戻り値としてRange("A2").Value
右辺には、Right関数
第1引数:Stringに『”セルを思いのままに動かそう”』
第2引数:Lengthに『1』
を当てはめれば良いのだから、
Range("A2").Value = Right("セルを思いのままに動かそう", 1)
これで良いのでしょうか。」
Sub Right関数()
Range("A2").Value = Right("セルを思いのままに動かそう", 1)
End Sub
パイさん
「それでは、そのマクロを実行してみましょう。」
ソンくん
「『セルを思いのままに動かそう』の右端から『1』文字分の文字列が取り出されて
セルA2に『う』と書きこまれました。」
-
演習(1):『セルを思いのままに動かそう』という文字列の
右端から2文字分の文字列を取り出してセルA2に格納
-
Sub Right関数()
Range("A2").Value = Right("セルを思いのままに動かそう", 2)
End Sub
(2) 対象文字列-取り出した文字列
パイさん
「先ほどは、Right関数の第1引数:Stringに直接対象となる文字列を当てはめてみましたが、
今度は、第1引数:Stringにセルの値を当てはめてみましょう。
ExcelのセルA2から取得した文字列の右端から2文字分の文字列を取り出して
セルB2に格納します。
予め、次のようなExcelシートを用意します。」
ソンくん
「今度も、Right関数をつかってみます。
セルA2から取得した文字列の右端から『2』文字分の文字列を取り出して
セルB2に格納するのだから、
左辺には、戻り値としてRange("B2").Value
右辺には、Right関数
第1引数:StringにRange("A2").Value
第2引数:Lengthに『2』
を当てはめれば良いのだから、
Range("B2").Value = Right(Range("A2").Value, 2)
これで良いのでしょうか。」
Sub Right関数_セル値_定数()
Range("B2").Value = Right(Range("A2").Value, 2)
End Sub
パイさん
「それでは、そのマクロを実行してみましょう。」
ソンくん
「『セルを思いのままに動かそう』の右端から『2』文字分の文字列が取り出されて
セルB2に『そう』と書きこまれました。」
-
演習(2):セルA2から取得した文字列の
右端から3文字分の文字列を取り出してセルB2に格納
-
Sub Right関数_セル値_定数()
Range("B2").Value = Right(Range("A2").Value, 3)
End Sub
(3) 対象文字列-取り出す文字数-取り出した文字列
パイさん
「今度は、Right関数の第2引数:Lengthにセルの値を当てはめてみましょう。
ExcelのセルA2から取得した文字列の右端からセルC2から取得した文字数分の文字列を取り出して
セルD2に格納します。
予め、次のようなExcelシートを用意します。」
ソンくん
「今度も、Right関数をつかってみます。
セルA2から取得した文字列の右端から、セルC2から取得した文字数分の文字列を取り出して
セルD2に格納するのだから、
左辺には、戻り値としてRange("D2").Value
右辺には、Right関数
第1引数:StringにRange("A2").Value
第2引数:LengthにRange("C2").Value
を当てはめれば良いのだから、
Range("D2").Value = Right(Range("A2").Value, Range("C2").Value)
これで良いのでしょうか。」
Sub Right関数_セル値_セル値()
Range("D2").Value = Right(Range("A2").Value, Range("C2").Value)
End Sub
パイさん
「それでは、そのマクロを実行してみましょう。」
ソンくん
「『セルを思いのままに動かそう』の右端から『4』文字分の文字列が取り出されて
セルD2に『動かそう』と書きこまれました。」
パイさん
「このように、Right関数を使うと、対象となる文字列の右端から指定した文字数分の文字列を取り出す
ことができます。」