文字列を取り扱うのは、プログラミングの基本的な操作です。VBAでもほかのプログラミング言語同様によく使います。
ExcelのLeft関数とVBAのLeft関数は、ほとんど同じ使い方になりますが、VBAの関数として解説します。
この記事では、文字列を取り出す(抜き出す)関数のLeft関数、Right関数、Mid関数についてご紹介します。
Left関数:左から○文字を返す
■サンプルコード
Sub Left関数()
MsgBox Left("東京都千代田区丸の内1丁目", 3)
End Sub
■実行結果
■サンプルコード解説
文字列である「東京都千代田区丸の内1丁」の左から3文字目までを取り出して、メッセージボックスに表示します。
■応用コード
Sub Left関数2()
Dim Address As String
Dim Mojisu As Long
Address = "東京都千代田区丸の内1丁目"
Mojisu = InStr(Address, "都")
MsgBox Left(Address, Mojisu)
End Sub
■応用コード解説
変数のAddressとMojisuに値を代入し、変数の値からLeft関数で文字列を取り出し、メッセージボックスに表示します。
Instr関数は、”都”が○番目にあるかを返す関数です。近いうち別の記事でご紹介します。
実行結果は、サンプルコードと同じです。
Right関数:右から○文字を返す
■サンプルコード
Sub Right関数()
MsgBox Right("山田太郎", 2)
End Sub
■実行結果
■サンプルコード解説
文字列である「山田太郎」の右から2文字目までを取り出して、メッセージボックスに表示します。
■応用コード
Sub Right2関数()
Dim FullName As String
Dim Mojisu As Long
FullName = "山田 太郎"
Mojisu = InStr(FullName, " ") - 1
MsgBox Right(FullName, Mojisu)
End Sub
■応用コード解説
変数のFullNameとMojisuに値を代入し、変数の値からRight関数で文字列を取り出し、名字を除いて名前のみをメッセージボックスに表示します。
Instr関数は、「山田 太郎」から” “(半角スペース)が○番目にあるかを返す関数です。半角スペースも含みますので、-1した数値をMojisuに返すように調整しています。
実行結果は、サンプルコードと同じです。
Mid関数:○文字目~○文字目を返す
■サンプルコード
Sub Mid関数()
MsgBox Mid("東京都千代田区丸の内1丁目", 4, 4)
MsgBox Mid("東京都千代田区丸の内1丁目", 4, 10)
MsgBox Mid("東京都千代田区丸の内1丁目", 4)
End Sub
■実行結果
■サンプルコード解説
文字列である「東京都千代田区丸の内1丁目」の4文字目から後(東京都より後)を取り出して、メッセージボックスに表示します。
1回目は、4文字目から4文字取り出し「千代田区」を表示します。
2回目と3回目は、4文字目から最後まで取り出し「千代田区丸の内1丁目」を表示します。2つ目のコードは、10文字としていますが、文字数が多い場合はエラーが発生せず10文字以下の場合は、最後までの文字列を取り出して返します。
■応用コード
Sub Mid関数2()
Dim Address As String
Dim Mojisu1 As Long
Dim Mojisu2 As Long
Address = "東京都千代田区丸の内1丁目"
Mojisu1 = InStr(Address, "都") + 1
Mojisu2 = InStr(Address, "区") + 1 - Mojisu1
MsgBox Mid(Address, Mojisu1, Mojisu2)
End Sub
■応用コード解説
文字列である「東京都千代田区丸の内1丁目」の東京都以降で○○区までを取り出してメッセージボックスに表示します。
Mojisu1は、Instr関数で”都”までの文字数を返し、+1することで、”都”より1つ後ろの文字を開始位置としています。
Mojisu2は、Instr関数で”区”までの文字数を返し、+1してMojisu1を引くことで、”区”までを取り出す文字数を計算しています。
実行結果は、サンプルコードの1回目と同じです。
コメント