【関数・プロパティ設定をつかう】

1 文字列の左端から一部の文字列を取得

2 文字列の右端から一部の文字列を取得

3 文字列の指定位置から指定文字分の文字列を取得

4 三つの文字列取得関数をつかう

5 文字列の指定位置から1文字を取得

6 文字列の文字数を取得

7 文字列のループで1文字ずつ分解

三つの文字列取得関数をつかう

パイさん

「これまでに、三つの文字列取得関数をつかってみました。

 Left関数は、対象となる文字列の左端から指定した文字数分の文字列を取り出すことができます。

 Mid関数は、対象となる文字列の指定位置から指定した文字数分の文字列を取り出すことができます。

 Right関数は、対象となる文字列の右端から指定した文字数分の文字列を取り出すことができます。」


パイさん

「今度は、Excel VBA/マクロのLeft関数Mid関数Right関数全ての引数にセルの値

 当てはめてみましょう。

 Left関数第1引数:StringにセルA2の値第2引数:LengthにセルD2の値を、

 Mid関数第1引数:StringにセルA2の値第2引数:StartにセルC3の値第3引数:LengthにセルD3の値を、

 Right関数第1引数:StringにセルA2の値第2引数:LengthにセルD4の値を、当てはめます。

 予め、次のようなExcelシートを用意します。」

Img7_1_41

ソンくん

Left関数をつかった構文は、

 Range("E2").Value = Left(Range("A2").Value, Range("D2").Value)

 Mid関数をつかった構文は、

 Range("E3").Value = Mid(Range("A2").Value, Range("C3").Value, Range("D3").Value)

 Right関数をつかった構文は、

 Range("E4").Value = Right(Range("A2").Value, Range("D4").Value)

 これで良いのでしょうか。」

Sub 文字列取得関数まとめ()

 ' Left関数

 Range("E2").Value = Left(Range("A2").Value, Range("D2").Value)

 ' Mid関数

 Range("E3").Value = _

  Mid(Range("A2").Value, Range("C3").Value, Range("D3").Value)

 ' Right関数

 Range("E4").Value = Right(Range("A2").Value, Range("D4").Value)

End Sub

パイさん

「それでは、そのマクロを実行してみましょう。」

Img7_1_43

ソンくん

「『セルを思いのままに動かそう』の左端から『3』文字分の文字列が取り出されて

 セルE2に『セルを』と書きこまれました。

 『セルを思いのままに動かそう』の『4』文字目から『6』文字分の文字列が取り出されて

 セルE3に『思いのままに』と書きこまれました。

 『セルを思いのままに動かそう』の右端から『4』文字分の文字列が取り出されて

 セルE4に『動かそう』と書きこまれました。」

 

パイさん

「試しに、対象文字列:セルA2

 Left関数の取り出す文字数:セルD2

 Mid関数の文字数を取り出す開始位置:セルC3、文字数を取り出す開始位置:セルD3

 Right関数の取り出す文字数:セルD4

 の値を適当な文字や数字に書きかえて、マクロを実行して、

 ある文字列から一部の文字列を自由自在に取得することができることを確かめてみましょう。」