教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAのWorksheetFunctionオブジェクトで使用するConcatenate関数の使い方

構文

構文は以下の通りです。

WorksheetFunction.Concatenate(文字列1, 文字列2, ... , 文字列N)

解説

WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。Concatenate関数は、2つ以上の文字列を結合して表示できる関数です。この関数は、与えられた文字列を順番に結合して、1そのうちの連結された文字列を返します。文字列1, 文字列2, ... , 文字列Nは、結合したい文字列やセルの値を指定します。最大255個の文字列を結合できます。

プログラミング例

具体的なプログラミング例を紹介します。

(例1)簡単な文字列の結合

Sub 文字列結合例1()
    Dim 結果 As String
    結果 = WorksheetFunction.Concatenate("こんにちは", "、", "世界")
    MsgBox 結果 '「こんにちは、世界」と表示されます。
End Sub

上記のプログラムは、「こんにちは」と「、」、「世界」という3つの文字列を結合しています。結果として、「こんにちは、世界」という文字列がでMsgBox表示されます。

(例2)セルの値結合

Sub 文字列結合例2()
    Dim 結果 As String
    Dim 名前 As String
    Dim 挨拶 As String
    名前 = Range("A1").Value 'セルA1に名前が入力されていると仮定します
    挨拶 = "さん、こんにちは"
    結果 = WorksheetFunction.Concatenate(名前, 挨拶)
    MsgBox 結果 '例:「太郎さん、こんにちは」と表示されます。
End Sub

上記のプログラムは、セルA1に入力された名前と、「さん、こんにちは」という文字列を結合しています。 結果はMsgBox表示され、例えばA1「太郎」と入力されていれば「太郎さん、こんにちは」 と表示されます。

(例3)数値と文字列を結合

Sub 文字列結合例3()
    Dim 数値 As Integer
    Dim 結果 As String    
    数値 = 123
    結果 = WorksheetFunction.Concatenate("あなたの番号は ", 数値, " です。")
    MsgBox 結果 '「あなたの番号は 123 です。」と表示されます。
End Sub

上記のプログラムは、数値と文字列を結合しています。数値も自動的に文字列に変換されるため、このように数値と文字列を進めても問題ありません。

まとめ

Concatenate関数は、2つ以上の文字列を結合して表示できる関数です。結合する文字列は直接指定するか、セルの値を参照して使用できます。数値も問題なく文字列として結合されます。