【VBA】VBAの基本的な文字列関数をマスターしよう!

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。
SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。
また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。
お気軽にお問い合わせください。
VBAで使う文字列の関数をご紹介!
これで、文字列の操作するための関数をマスターできるよ!

文字数に合わせて処理を分けたいけどどうしたらいいか分からない😭
プログラミングする上で、文字列を処理することは多いです。
そのためVBAでは、文字列の操作するために関数が用意されています。



今回は、文字列の関する関数を解説するね!
覚えるというより、使いたい時にこのページで使い方を確認して、使えたらいいですよ!
プログラミングは、暗記力ではないので、読んで使えるようになれば大丈夫です!
本記事の内容を使って、VBAで業務効率化をぜひ実践してくださいね!
文字列の長さを取得する関数



まずは、文字列の長さを取得できる関数を紹介しますね!
Len関数
- Len関数は、文字列の長さを取得できる関数
- 名前や住所などの文字数をカウントするのに便利!
- 処理の分岐で使える!
Sub test()
Dim myString As String
myString = "こんにちは"
Dim length As Long
length = Len(myString)
'文字数を表示
MsgBox length
End Sub
実行結果





length = Len(myString)で、
「こんにちは」の文字数である5を取得できたね!
セルにある文字列の数を取得する場合
Sub test()
Dim myString As String
myString = Worksheets("Sheet1").Range("A1")
Dim length As Long
length = Len(myString)
'文字数を表示
MsgBox length
End Sub





Lenのあとのかっこ内に、調べたい文字列で使えるよ!
文字列の一部を取り出す関数
文字列の一部を取り出すというのは、下記の画像で赤色の部分だけを取得することです。





文字列の取り出したい部分だけを取得できる関数、
それは「Mid」関数です
Mid関数
- MID関数は、文字列の特定の位置から指定した数の文字を抜き出せる
- 商品コードの一部を取得するのに使える
- 開始位置も取得する文字数も指定できる
まずは、コード例と実行した画像をご紹介。
Sub midtest()
Dim text As String
text = "VBAを学ぼう"
Dim part As String
part = Mid(text, 1, 3)
'文字数を表示
MsgBox part
End Sub





Mid関数は、Midのかっこ内で、文字列と、開始位置、取得する文字数を指定するだけで、使えるよ!
先ほどの商品コードの一部を取得してみる場合。
Sub midtest()
Dim text As String
text = Worksheets("Sheet1").Range("A2")
Dim part As String
part = Mid(text, 3, 5) ' 3文字目から5文字取得と指定
'文字数を表示
MsgBox part
End Sub





わー、やりたいことが出来た!
文字列の先頭から指定した数の文字を取得する関数
文字列の先頭から指定した数の文字を取得するというのは、下記の画像で赤色の部分だけを取得することです。





文字列の先頭から、必要な文字数を取得できる関数、
それが『LEFT』関数です。
LEFT関数
- LEFT関数は、文字列の左から指定した数の文字を抜き出せる
- 商品コードの一部を取得や、郵便番号の頭3桁を取得するときに使える
- 必要な文字数を指定することができる
まずは、コード例と実行した画像をご紹介。
Sub leftTest()
Dim text As String
text = "12345XYZ"
Dim part As String
part = Left(text, 5)
MsgBox part
End Sub





Left関数は、かっこ内で、文字列と、取得する文字数を指定するだけで、使えるよ!
先ほどの商品コードの先頭2文字を取得してみる場合。
Sub leftTest()
Dim text As String
text = Worksheets("Sheet1").Range("A2")
Dim part As String
part = Left(text, 2)
MsgBox part
End Sub





簡単に先頭から必要な文字数分、取得できるようになった!
文字列の末尾(最後)から指定した数の文字を取得する関数
文字列の末尾(最後)から指定した数の文字を取得するというのは、下記の画像で赤色の部分だけを取得することです。





文字列の末尾(最後)から、必要な文字数を取得できる関数、
それが『Right』関数です。
Right関数
- Right関数は、文字列の末尾、最後(右)から指定した数の文字を抜き出せる
- 商品コードの一部を取得や、郵便番号の最後の4桁を取得するときに使える
- 必要な文字数を指定することができる
まずは、コード例と実行した画像をご紹介。
Sub rightTest()
Dim text As String
text = "12345XYZ"
Dim part As String
part = Right(text, 3)
MsgBox part
End Sub





Right関数は、かっこ内で、文字列と、取得する文字数を指定するだけで、使えるよ!
LEFT関数と似ているね!
先ほどの商品コードの最後の2文字を取得してみる場合。
Sub leftTest()
Dim text As String
text = Worksheets("Sheet1").Range("A2")
Dim part As String
part = Right(text, 2)
MsgBox part
End Sub





LEFT関数もRight関数も使える自信が出てきたよ!
指定した文字列の位置を検索する関数
指定した文字列の位置を検索するというのは、下記の画像で指定した文字列の開始位置を取得することです。





『VBA』という文字列が、何文字目からあるのかを取得できる関数があるんだ!
それが出来るのは、InStr関数です!
InStr関数
- InStr関数は、指定した文字列が、何文字目からあるかを取得できる
- 指定した文字列があるかも調べることができる(見つからなかったら0が取得できるため)
- 処理の分岐に使いやすい
まずは、コード例と実行した画像をご紹介。
Sub inStrTest()
Dim text As String
text = "私はVBAが大好きです!"
Dim position As Long
position = InStr(text, "VBA")
MsgBox position
End Sub





InStr関数は、かっこ内で、文字列と、検索する文字列を指定するだけで、使えるよ!
検索した結果、見つからなかった場合は、『0』が取得される



見つかった場合と見つからなかった場合の処理の分岐も簡単にできますね!
Sub inStrTest()
Dim text As String
text = "私はVBAが大好きです!"
Dim position As Long
position = InStr(text, "VBA")
If position = 0 Then
MsgBox "VBAという文字列は発見できませんでした。"
Else
MsgBox position & "文字目に発見しました!"
End If
End Sub



見つかった文字の開始位置で処理の分岐をするのも簡単ですね!
文字列の一部を置き換える関数
文字列の一部を置き換えるというのは、下記の画像で指定した文字列を指定した文字列に変更することです。




➡





『VBA』という文字列を、『Excel』という文字列に置き換えることができるんだ!
それが出来るのは、Replace関数です!
Replace関数
- Replace関数は、指定した文字列を、指定した文字列に置き換えることができる
- 処理の分岐に使いやすい
まずは、コード例と実行した画像をご紹介。
Sub replaceTest()
Dim original As String
original = "私はVBAが大好きです。"
Dim newString As String
newString = Replace(original, "VBA", "Excel")
MsgBox newString
End Sub





Replace関数は、かっこ内で、文字列と、検索する文字列と、置き換える文字列を指定することでできるんだ!
因みに、ほとんどの場合オプションは使いませんが、Replace関数のオプション指定できる項目もご紹介しておきます。
Replace( expression, find, replace [, start ] [, count ] [, compare ] )
引数 | 説明 |
expression | 置き換える前の文字列 |
find | 検索対象の文字列 |
replace | 置き換える文字列 |
start | 省略可能。 expression 内で文字列の検索を始める位置です。 省略すると、1 と見なされます。 |
count | 省略可能。 実行する文字列置換の回数です。 省略した場合の既定値は -1 で、見つかったすべてを置換します。 |
compare | 省略可能。 文字列を評価するときに使う比較の種類を示す。 |
まとめ
VBAの文字列関数は、業務効率化をすぐに実施できるツールです。
この基本を押さえて、作業をスムーズに進めてみてな。もっと詳しい使い方が知りたい場合は、ぜひコメントしてください!あなたの業務をもっと楽にするお手伝いをしたいと思っています。


稲垣
- Excel、ACCESSでのシステム開発が得意
- ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
- 自家焙煎するほどのコーヒー好き
- 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
- 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
- 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
- お客様にとって本当に良いことかを第一に考える人
コメント