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

こんにちは!大阪市住之江区に拠点を置く会社『縁紡ぐ』の稲垣です。

当社は、Excel、ACCESS、RPAなどのシステム開発や既存ツールを使った業務効率化の提案、また、ITスキルアップのための教育に力を入れています。効率的なビジネス運営を目指している企業様、ITスキルの向上を図りたい企業や個人の方に、最適なご提案をさせていただきます。業務プロセスの改善と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を取得できたね!

セルにある文字列の数を取得する場合

セルの文字列の数を取得したい場合は、myStringにセルの値を入れるようにするとできます

Sub test()
    
    Dim myString As String
    myString = Worksheets("Sheet1").Range("A1")
    
    Dim length As Long
    length = Len(myString)
    
    '文字数を表示
    MsgBox length

End Sub

Len(文字列)

縁紡ぐ

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関数は、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(文字列, 取得する文字数)

縁紡ぐ

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(文字列, 取得する文字数)

縁紡ぐ

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(文字列, 検索する文字列)

縁紡ぐ

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関数のオプション指定できる項目もご紹介しておきます。

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.
  • 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
  • お客様にとって本当に良いことかを第一に考える人
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次