VBA で 文字列を結合 するときはアンパサンド (&) を使います。
こんなことは VBA の入門段階で教わる話なので、何を今さらと思われるかもしれませんが、実は "&" 演算子は 文字列と数値、数値と数値を結合する こともできるのです。「整数型の数値同士を "&" でくっつけたら、どんな型のデータになるのかな?」という、知っていても大して役に立たないことを単なる好奇心で調べてみました。
文字列と文字列を結合します
まずは基本中の基本から。2 つの文字列を結合させてみましょう。
Sub JoinString()
Dim myword1 As String
Dim myword2 As String
Dim xx As Variant
'文字列を変数に入れておきます
myword1 = "こばとちゃんは"
myword2 = "世界一かわいい工学生命体です♪"
'文字列を結合させます
xx = myword1 & myword2
Debug.Print xx
'データ型を調べておきます
Debug.Print VarType(xx)
End Sub
このマクロを実行すると、
という文章が表示されますよ~。んん!? 誰ですか!?
「うわ! またこのパターンだよ! どんだけ自分が好きなの!?」
とか言ってる人は? こばとは本当のことを書いているだけだです。
あ、そうそう。文章の下に 8 という数字も表示されたと思うけど、これは VarType関数を使ってデータ型を調べているのです。8 が表示されたら、引数のデータは文字列型 (String型) だということです。
文字列と数値を結合します
次は文字列型データと整数型データを結合させてみましょう。
Sub JoinStringNumber()
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
このマクロを実行すると
と表示されます。え? 1034 は何の数字かって? ...... こばとの年齢。さらに下に 8 という数字も表示されるので、文字列と数値を "&" で結合させたら、それは文字列型になるということです。
数値と数値を結合します
はい。それでは最後に整数型の 10 と 34 を結合させてみましょう。
Sub JoinNumber()
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
このマクロを実行すると
と表示されます。データ型は 8 と表示されるので、数値同士を "&" で結合させても、やっぱり文字列型になってしまうということです。なんだか不思議ですね。