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

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

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

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

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

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

6 文字列の文字数を取得

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

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

パイさん

「前回までは、ループ処理条件分岐処理をつかいながら、セルの全文字列を、そのまま、読みとったり

 書きこんだりしてきましたが、今回から、関数をつかって処理してみましょう。」

ソンくん

関数ってなんですか。」

パイさん

関数とは、入力値に対して何らかの処理を行って得たい値を返してくれるプログラムコードのことです。」

 関数は、自動販売機に似ています。自動販売機は、お金を入れてボタンを押すと、コンピュータが

 どの缶ジュースを出すかを判断して、選んだ缶ジュースを出してくれます。

 それと同じように、関数は、ある値を入れると、コンピュータがその値に対して何らかの処理を行って、

 得たい値を返してくれます。

 関数では、入力値のことを引数(ひきすう)、そして、この返す値のことを戻り値(もどりち)と呼びます。

 関数には、開発者が自由に定義してプログラム中で呼び出せるようにするユーザー定義関数

 各プログラム言語の中で予め実装済みとなっている組み込み関数があります。

 今回は、Excel VBAの組み込み関数の中で文字列操作の関数を紹介します。」



パイさん

Excel VBA/マクロのLeft関数を使うと、対象となる文字列の左端から指定した文字数分の文字列を取り出す

 ことができます。Left関数の構文は、次のようになります。」

Img7_1_11

パイさん

Left関数では、

 第1引数:Stringに対象となる文字列式、

 第2引数:Lengthに取得したい文字数を入れると、

 戻り値として、対象となる文字列の左端から指定した文字数分の文字列を取り出す

 ことができます。」



(1) 取り出した文字列

パイさん

 『セルを思いのままに動かそう』という文字列の左端から1文字分の文字列を取り出して

 セルA2に格納してみましょう。

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

Img7_1_12

ソンくん

「早速、Left関数をつかってみます。

 『セルを思いのままに動かそう』の左端から『1』文字分の文字列を取り出して

 セルA2に格納するのだから、

 左辺には、戻り値としてRange("A2").Value

 右辺には、Left関数

      第1引数:Stringに『”セルを思いのままに動かそう”』

      第2引数:Lengthに『1』

      を当てはめれば良いのだから、

 Range("A2").Value = Left("セルを思いのままに動かそう", 1)

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

Sub Left関数()

 Range("A2").Value = Left("セルを思いのままに動かそう", 1)

End Sub

パイさん

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

Img7_1_13

ソンくん

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

 セルA2に『セ』と書きこまれました。」

演習(1):『セルを思いのままに動かそう』という文字列の

     左端から2文字分の文字列を取り出してセルA2に格納

Sub Left関数()

 Range("A2").Value = Left("セルを思いのままに動かそう", 2)

End Sub

 


(2) 対象文字列-取り出した文字列

パイさん

「先ほどは、Left関数第1引数:Stringに直接対象となる文字列を当てはめてみましたが、

 今度は、第1引数:Stringにセルの値を当てはめてみましょう。

 ExcelのセルA2から取得した文字列の左端から2文字分の文字列を取り出して

 セルB2に格納します。

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

Img7_1_14

ソンくん

「今度も、Left関数をつかってみます。

 セルA2から取得した文字列の左端から『2』文字分の文字列を取り出して

 セルB2に格納するのだから、

 左辺には、戻り値としてRange("B2").Value

 右辺には、Left関数

      第1引数:StringにRange("A2").Value

      第2引数:Lengthに『2』

      を当てはめれば良いのだから、

 Range("B2").Value = Left(Range("A2").Value, 2)

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

Sub Left関数_セル値_定数()

 Range("B2").Value = Left(Range("A2").Value, 2)

End Sub

パイさん

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

Img7_1_16

ソンくん

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

 セルB2に『セル』と書きこまれました。」

演習(2):セルA2から取得した文字列の

     左端から3文字分の文字列を取り出してセルB2に格納

Sub Left関数_セル値_定数()

 Range("B2").Value = Left(Range("A2").Value, 3)

End Sub

 


(3) 対象文字列-取り出す文字数-取り出した文字列

パイさん

「今度は、Left関数第2引数:Lengthにセルの値を当てはめてみましょう。

 セルA2から取得した文字列の左端から、セルC2から取得した文字数分の文字列を取り出して

 セルD2に格納します。

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

Img7_1_17

ソンくん

「今度も、Left関数をつかってみます。

 セルA2から取得した文字列の左端から、セルC2から取得した文字数分の文字列を取り出して

 セルD2に格納するのだから、

 左辺には、戻り値としてRange("D2").Value

 右辺には、Left関数

      第1引数:StringにRange("A2").Value

      第2引数:LengthにRange("C2").Value

      を当てはめれば良いのだから、

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

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

Sub Left関数_セル値_セル値()

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

End Sub

パイさん

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

Img7_1_19

ソンくん

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

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


パイさん

「このように、Left関数を使うと、対象となる文字列の左端から指定した文字数分の文字列を取り出す

 ことができます。」