文字列と文字列を結合するときはアンパサンド (&) を使います。こんなことは 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 と表示されるので、数値同士を "&" でくっつけても、やっぱり文字列型になってしまうということです。なんだか不思議ね~。それでは今回はこのへんで~。