【VBA入門】文字列操作まとめ

VBA 文字列操作
  • URLをコピーしました!
※当ブログではアフィリエイト広告を表示しています

VBAでよく使う文字列操作をまとめました。
直感的に分かりやすい関数名なので、何度か使えば関数を覚えられちゃいますよ。

目次

検索

    Dim str1 As String
    Dim str2 As String
    Dim str3 As String
    Dim ret1 As Variant
    Dim ret2 As Variant
    
    '検索
    str1 = "abc123def456"
    str2 = "3de"
    str3 = "345"
    
    ret1 = InStr(str1, str2)
    ret2 = InStr(str1, str3)
    
    MsgBox "「3de」を検索結果:" + CStr(ret1) _
            + vbCrLf _
            + "「345」を検索結果:" + CStr(ret2)

まずは文字列の中に、指定の文字列があるか検索する関数「InStr」です。

ret = InStr(検索される文字列, 検索する文字列)

となります。
戻り値は、

文字列が見つかったら、文字列が見つかった位置(何文字目か。例なら6番目に見つかったので6が返る)
文字列が見つからなかったら0

その他、文字列がNullだったりした場合の戻り値もありますが、基本あり得ないので覚えなくていいです。
ただ、数値ではなくNullが返る場合もあるので、戻り値を受ける変数の型はVariant型にしておく必要があります。

文字列が見つかったら1以上、見つからなかったら0が返ってくる、と覚えてくださいね。

VBA文字列検索結果
文字列検索結果

置換

    '置換
    str1 = "あいうえおかきくけこ"
    str2 = Replace(str1, "おか", "岡")
    
    MsgBox "置換結果:" + str2

文字列の一部を置換する場合は「Replace」関数を使います。

変換後の文字列 = Replace( 基の文字列 , 変換される文字列 , 変換する文字列 )

VBA置換後の文字列
置換後の文字列

分割

    '分割
    str1 = "ab,cde,fghi,jklm"
    ret1 = Split(str1, ",")
    
    MsgBox "分割結果:" + vbCrLf _
        + "ret1(0):" + ret1(0) + vbCrLf _
        + "ret1(1):" + ret1(1) + vbCrLf _
        + "ret1(2):" + ret1(2) + vbCrLf _
        + "ret1(3):" + ret1(3)

文字列を、ある指定の文字列で分割する場合は「split」関数を使います。

ret = Split( 基の文字列, 区切り文字)

戻り値は一次元配列として戻ってきます。
要素数が分からないので、これも戻り値を受ける変数はVariant型にしておく必要があります。

分割された文字列はret(0)から順に格納されています。

VBA文字列分割
分割された文字列

結合

    '結合
    str1 = "abc"
    str2 = "123"
    str3 = str1 + str2
    
    MsgBox "結合結果:" + str3

文字列の結合は、普通に「+」で繋げていくことができます。

直感的で分かりやすいですね!

VBA文字列結合結果
文字列結合結果

トリミング(空白除去)

    'トリミング
    str1 = "  abcdefg   "
    str2 = Trim(str1)
    
    MsgBox "トリミング前 :" + str1 + vbCrLf _
         + "トリミング結果:" + str2

文字列の前後の空白を消すトリミングを行うには「Trim」関数を使います。

処理後の文字列 = Trim(処理前の文字列)

VBA文字列のトリミング
トリミングした文字列

数値→文字列変換

    '数値=>文字列
    Dim i As Integer
    Dim d As Double
    
    i = 234
    d = 3.1415
    
    str1 = CStr(i)
    str2 = CStr(d)
    
    MsgBox "変換結果" + vbCrLf _
            + str1 + vbCrLf _
            + str2

数値を文字列に変換する場合は「CStr」を使います。

文字列変数 = CStr(数値)

数値がInt型でもDouble型でも同じでOK!

VBA数値を文字列に変換
数値を文字列に変換した結果

文字列→数値変換

    '文字列=>数値
    str1 = "8765"
    str2 = "2.71828"

    i = CInt(str1)
    d = CDbl(str2)

    Range("B2") = i
    Range("B3") = d

文字列を数値に変換する場合は、変換したい数値の型によって変わります。
Int型に変換するなら「CInt」、
Double型に変換するなら「CDbl」を使います。

Int型変数 = CInt(文字列)
Double型文字列 = CDbl(文字列)

VBA文字列を数値に変換
文字列を数値に変換

さいごに

私が普段よく使うVBAの文字列に関する処理をまとめました。
他にもありますが、よく使うのはこれくらいですよ。

参考になったらうれしいです。

んじゃ、また~

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

関連記事

応援よろしくお願いします☆

この記事を書いた人

理系夫婦の妻のほうです。
大学、大学院(修士)で物理を専攻。
2016年に長女を出産、2021年に長男を出産。
フルタイム勤務ワーママ→休職→専業主婦。

コメント

コメントする

目次