VBA で 文字列を結合 するときは アンパサンド (&) を使います。こんなことは VBA の入門段階で教わる話なので、何を今さらと思われるかもしれませんが、実は “&” 演算子は文字列と数値、数値と数値を結合することもできるのです。「整数型の数値同士を “&” でくっつけたら、どんな型のデータになるのかな?」という、知っていても大して役に立たないことを単なる好奇心で調べてみました。
【VBA】データの結合
まずは基本中の基本から。2つの文字列を結合させてみましょう。
'[VBA] アンパサンド演算子(&)による文字列同士の結合 Sub Join_String() Dim myword1 As String Dim myword2 As String Dim xx As Variant '文字列を変数に入れておきます myword1 = "VBAは" myword2 = "事務系でまだまだ活躍できる言語です" '文字列を結合させます xx = myword1 & myword2 Debug.Print xx 'データ型を調べておきます Debug.Print VarType(xx) End Sub 'Join_String()の実行結果: 'VBAは事務系でまだまだ活躍できる言語です
あ、そうそう。文章の下に「8」が表示されたと思うけど、これは VarType関数 で取得したデータ型です。VBAでは型検査で「8」が表示されたら、引数のデータは文字列型(String型)だということです。
次は文字列型データと整数型データを結合させてみましょう。
'[VBA] アンパサンド演算子(&)による文字列と数値の結合 Sub Join_String_Number() Dim mystr As String Dim mynum As Integer Dim xx As Variant mystr = "こばと" mynum = 1034 xx = mystr & mynum Debug.Print xx 'データ型を調べておきます Debug.Print VarType(xx) End Sub 'Join_String_Number()の実行結果: '1034
え? 「1034」は何の数字かって? … こばとの年齢。さらに下に「8」という数字も表示されるので、文字列と数値を “&” で結合させたら、それは文字列型になるということです。
はい。それでは最後に整数型の「10」と「34」を結合させてみましょう。
'[VBA] アンパサンド演算子(&)による数値と数値の結合 Sub Join_Numbers() Dim i As Integer Dim j As Integer Dim xx As Variant i = 10 j = 34 xx = i & j Debug.Print xx Debug.Print VarType(xx) End Sub 'Join_Numbers()の実行結果: '1034
データ型は「8」と表示されるので、数値同士を “&” で結合させても、やっぱり文字列型になってしまうということです。なんだか不思議ですね。余談ですけど、”アンパサンド” て聞くと、「アンパン」と「サンドイッチ」を連想しませんか? え? こばとだけ? そうですかね。
≫【VBA】Debug.Printの使い方
コメント