EXCEL VBA Len Left Rigth Mid 関数の使い方
EXCEL VBA Len・Letf・Rigth・Mid関数の使い方
●はじめに
ここでは、Len/Left/Rigth/Mid関数の使い方を説明いたします。この関数は、文字列の個数をカウントしたり、文字列を指定した文字分を返す関数です。下表にLen/Left/Rigth/Mid関数の使用例を記述していますので、参照して下さい。
関数名 | 使用例 | 説明 |
Len(文字列) | Dim A as Integer
A = Len(”東京都”) |
Lenは、文字列(東京都)の数をカウントするので、Aに”3”が入ります。 |
Left(文字列,文字数) | Dim A as String
A = Left(”浦島太郎”,2) |
Leftは、文字列の左側から指定した文字数分を返します。使用例では、2を指定していますので、Aには、”浦島”が入ります。 |
Right(文字列,文字数) | Dim A as String
A = Right(”浦島太郎”,2) |
Rightは、文字列の右側から指定した文字数分を返します。使用例では、2を指定していますので、Aには、”太郎”が入ります。 |
Mid(文字列,何文字目,文字数) | Dim A as String
A =Mid(“東京都新宿区”, 4, 2) |
Midは、文字列の指定した位置から指定文字分返します。Aには、左から4文字目、2文字分を返しますので、”新宿”が入ります。 |
Len関数
●プログラム説明
次に、Len関数を使ったサンプルプログラムの説明をいたします。カウントしたい文字列を入力し、入力された文字列の数を表示させるプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub Len_test() Dim Moji As String Dim Kazu, I As Integer Moji = InputBox("文字を入力してください") 'Lenでカウントする文字列を入力します。 Kazu = Len(Moji) 'Len関数を使い入力した文字列をカウントします。 MsgBox "入力した文字数は、" & Kazu & "です。" '文字列の数を表示します。 End Sub |
●実行結果
Len関数は、文字数をカウントしますので、入力した文字は、「あいうえお」5文字なので、結果は「5」を返します。
●実行前 ※文字の入力を行います。サンプルデータとして、「あいうえお」(クリックして拡大)
●実行後 ※入力した文字をカウントしましたので、「入力した文字数は、5です」と表示されました。(クリックして拡大)
Mid関数
●プログラム説明(サンプル②)
続きまして、Mid関数を使った下記のサンプルプログラムの説明をいたします。文字列を入力します。そして、入力した文字列内を検索する文字(1文字)を入力します。文字列内から検索文字を一文字ずつ検索して見つけた場所をメッセージとして表示するサンプルプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub Mid_test() Dim Moji, Kensaku, Check As String Dim Kazu, I As Integer Moji = InputBox("文字を入力して下さい") '文字列を入力します。 Kensaku = InputBox("検索文字(1文字)を入力して下さい") '検索する文字を入力します。 For I = 1 To Len(Moji) 'Lenで文字数分繰り返します、 Check = Mid(Moji, I, 1) 'Midで1文字づつ抜きだします。 If Check = Kensaku Then '抜き出した文字と検索文字を同じか確認します。 MsgBox "検索文字は、" & I & "番目にあります。" End If Next I End Sub |
●実行結果
実行後、入力した文字と検索文字を指定します。入力した文字の中に、検索文字が左から4番目にあるので、「4番目」にあります。とのメッセージが表示されました。
●実行前 ※検索元の文字を入力します。ここでは、サンプルとして「東京都新宿区」と入力します。(クリックして拡大)
●実行後 ※①検索文字を入力します「新」 ②文字の検索結果として4番目と表示されます。(クリックして拡大)
Right関数
●プログラム説明(サンプル③)
続きまして、Right関数を使った下記のサンプルプログラムの説明をいたします。セルA1~10に都道府県のデータ登録されています。文字列A1~A10まで順番に呼び出し、呼び出した文字列の中身を検索します。検索文字として”県”があれば、B列に★を付けるプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Sub Right_test() Dim Moji, Ken As String Dim L, I As Integer For L = 1 To 10 'セルA1~A10をループ Moji = Cells(L, "A") 'セルの値をMojiに代入する。 For I = 1 To Len(Moji) 'Len関数を使い文字数分繰り返す。 Ken = Right(Moji, I) '文字列の一文字分をKenに代入します。 If Ken = "県" Then 'Kenに代入した文字に”県”があるとB列に★を付けます。 Cells(L, "B") = "★" End If Next I Next L End Sub |
●実行結果
検索文字として、「県」を指定していますので、A列の都道府県名の中に「県」あるものに★「B列」を付けます。
●実行前 ※サンプルデータとしてA列に都道府県名を入力します。(クリックして拡大)
●実行後 ※実行後に”県”が付く都道府県に★がB列につきました。(クリックして拡大)
Left・Right関数
●プログラム説明
続きまして、Left・Right関数を使った下記のサンプルプログラムの説明をいたします。セルA1~4に住所のデータが登録されています。文字列A1~A4まで順番に呼び出し、呼び出した文字列の中身を左3文字分をB列に住所データ(県)を代入して、全文字数から3文字分(県)引いた文字数を右から取り出した住所データをC列に代入するプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub Left_Right_test() Dim Jyusyo, Ken, Machi As String Dim L, I As Integer For L = 1 To 4 ' セルA1~A4まで順番に繰り返す。 Jyusyo = Cells(L, "A") 'セルのデータをJyusyoに代入します。 I = Len(Jyusyo) 'Jyusyoの文字数をIに入れます。 Ken = Left(Jyusyo, 3) 'Left関数を使いJyusyoデータの左から3文字をKenに代入(千葉県) Machi = Right(Jyusyo, I - 3) 'Right関数を使いJyusyo(住所)データの右側3文字分を引いた住所をMachiに入れます。 Cells(L, "B") = Ken 'セルに県のデータをB列に代入します Cells(L, "C") = Machi 'セルに県のデータ分を除いたデータをC列に代入します。 Next L End Sub |
●実行結果
実行後、A列に登録されている住所データが県(B列)のみとそれ以外の住所(C列)に分かれました。
●実行前 ※A列にサンプルの住所が登録されています。(クリックして拡大)
●実行後 ※B列には「千葉県」・C列には、以降の住所に分かれました。(クリックして拡大)
最後まで、ご覧いただきまして誠に有難うございました。
以上で、Len/Left/Rigth/Mid関数の使い方の説明でした。文字列を操作するには、便利な機能なので状況により使い分けて下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。
以上で、Len/Left/Rigth/Mid関数の使い方の説明でした。文字列を操作するには、便利な機能なので状況により使い分けて下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。