『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【VBA】アンパサンド(&)によるデータの結合

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の使い方

コメント