- Home ›
- Excel VBA入門 ›
- 基本文法 ›
- HERE
文字列の結合
2つの文字列を1つの文字列として結合する方法について確認していきます。
文字列と文字列を結合するにはアンパサンド(&)を使う方法とプラス(+)を使う方法の2つがあります。
Dim a As String Dim b As String Dim c As String Dim d As String a = "こんにちは" b = "お元気ですか" c = a & b d = a + b
上記では変数「c」と変数「d」のどちらにも「こんにちはお元気ですか」と変数「a」と変数「b」の文字列が結合された文字列が格納されます。
また文字列と文字列の結合だけではなく、文字列と数値を結合して新しい文字列とすることもできますし、数値と数値を結合して文字列とすることもできます。
「&」と「+」のどちらを使ってもいいのですが、「+」の方は数値と数値で使うと加算が実行されてしまい、単に結合とはなりませんので注意が必要です。次のサンプルを見て確認して下さい。
サンプルプログラム
まずは「&」を使って色々な文字を結合してみます。
Sub テスト() Dim str1 As String Dim str2 As String Dim num1 As Integer Dim num2 As Integer str1 = "こんにちは" str2 = "お元気ですか" num1 = 10 num2 = 34 Range("A1").Value = str1 & str2 Range("A2").Value = str1 & num1 Range("A3").Value = num2 & str1 Range("A4").Value = num1 & num2 End Sub
上記のマクロを実行すると次のようになります。
このように、文字列と文字列、文字列と数値、数値と文字列、数値と数値、のどのパターンでも「&」の両端の値が単にくっついて新しい文字列となっています。
では次に「+」を使って試してみます。
Sub テスト() Dim str1 As String Dim str2 As String Dim num1 As Integer Dim num2 As Integer str1 = "こんにちは" str2 = "お元気ですか" num1 = 10 num2 = 34 Range("A1").Value = str1 + str2 Range("A2").Value = str1 + num1 Range("A3").Value = num2 + str1 Range("A4").Value = num1 + num2 End Sub
今度の場合、まずコンパイルの段階でエラーが出ます。
エラーが発生しているのは「文字列」+「数値」の行です。「+」を使う場合にはこの組み合わせは実行できません。同じ理由で「数値」+「文字列」の行も実行できません。そこでこの2つの行は削除して再度実行してみます。
文字列と文字列、そして数値と数値はエラーがなく実行が出来ますが、「数値」と「数値」を「+」で結んだ場合、「&」のように単に上下に結合した文字列が出来るのではなく、左辺と右辺が加算の計算が行われ、加算の結果が表示されることになります。
このように文字列の結合の場合には、出来る限りアンパサンド(&)を使って結合しておいた方がケアレスミスも少なくなりますので出来る限り「&」を使うようにしましょう。
( Written by Tatsuo Ikura )