以下は、初心者でもそのまま実践できるように整理した完全版まとめ+サンプルコード集です。
1. 基本:文字列を結合するには &
VBAでは、文字列をつなげたいときは &(アンパサンド) を使います。
✅ 例:
Sub Sample1()
Dim s As String
s = "こんにちは、" & "世界!"
MsgBox s
End Sub
VB🔹出力結果:
こんにちは、世界!
+ でも結合できるが注意!
Sub Sample2()
Dim s As String
s = "Hello " + "World"
MsgBox s
End Sub
VBこれは動きますが、数値が混ざると「加算」扱いになることがあるため危険です。
2. 数値と文字列を結合する(& を使う)
Sub Sample3()
Dim ver As String
Dim num As Integer
num = 12
ver = "Version " & num
MsgBox ver
End Sub
VB🔹出力結果:
Version 12
💡& は自動で数値を文字列に変換してくれます。
+ で文字列と数値を結合するとエラー
Sub Sample4()
Dim ver As String
Dim num As Integer
num = 12
ver = "Version " + num ' ← 型が合わずエラー
MsgBox ver
End Sub
VB🔸結果:
「型が一致しません(Type mismatch)」エラーが出ます。
3. 日付と文字列を結合する
Sub Sample5()
Dim d As Date
Dim s As String
d = Date ' 今日の日付
s = "今日の日付は " & d
MsgBox s
End Sub
VB🔹出力例:
今日の日付は 2025/10/17
💡VBAは自動で日付を "YYYY/MM/DD" 形式に変換します。
4. 改行を入れて結合する(vbCrLf)
改行を入れるときは vbCrLf を使います。
Sub Sample6()
Dim msg As String
msg = "行1です" & vbCrLf & "行2です" & vbCrLf & "行3です"
MsgBox msg
End Sub
VB🔹出力結果:
行1です
行2です
行3です
💡vbCrLf は「改行コード」です。Windows環境ではこの1つでOKです。
5. 複数のデータをまとめて結合する
Sub Sample7()
Dim name As String
Dim age As Integer
Dim city As String
Dim result As String
name = "田中"
age = 25
city = "東京"
result = "名前:" & name & vbCrLf & _
"年齢:" & age & vbCrLf & _
"出身:" & city
MsgBox result
End Sub
VB🔹出力結果:
名前:田中
年齢:25
出身:東京
6. 応用:セルの値をつなげる
Sub Sample8()
Dim fullName As String
fullName = Range("A1").Value & " " & Range("B1").Value
Range("C1").Value = fullName
End Sub
VB🔹A1に「山田」、B1に「太郎」がある場合:
C1 → 「山田 太郎」
7. 複数行に分けて読みやすく書く
Sub Sample9()
Dim text As String
text = "これは" & _
"長い" & _
"文字列です"
MsgBox text
End Sub
VB🔹出力結果:
これは長い文字列です
💡行の途中で改行したいときは「 _(アンダースコア)」を行末につけます。
8. 文字列を繰り返して結合する(ループ)
Sub Sample10()
Dim i As Integer
Dim stars As String
stars = ""
For i = 1 To 5
stars = stars & "★"
Next i
MsgBox stars
End Sub
VB🔹出力結果:
★★★★★
まとめ表
| 操作 | 記号 | 動作 |
|---|---|---|
| 文字列と文字列の結合 | & | 安全・推奨 |
| 数値と文字列の結合 | & | 自動変換でOK |
| 文字列と日付の結合 | & | 自動変換でOK |
| 改行を入れる | vbCrLf | "文字" & vbCrLf & "文字" |
| 長い文を複数行に書く | _ | "文字" & _ で改行可 |
| ループで繰り返し結合 | For〜Next | "★" を複数回結合 |
練習問題
問題 1:
ユーザーの入力を結合して「こんにちは、○○さん!」と表示するマクロを作ってみましょう。
ヒント:
Sub Greeting()
Dim name As String
name = InputBox("あなたの名前を入力してください")
MsgBox "こんにちは、" & name & "さん!"
End Sub
VB問題 2:
A1〜A3 のセルにある文字列を「,」で区切って 1 行にまとめ、B1 に出力するマクロを作ってください。
解答例:
Sub JoinCells()
Dim result As String
result = Range("A1").Value & ", " & Range("A2").Value & ", " & Range("A3").Value
Range("B1").Value = result
End Sub
VB
