Конкатенация – это объединение нескольких строк в одну. В VBA для соединения строк используют знак & (амперсанд).
Пример слияния строк в VBA
Sub myCode()
concatenatio = "Доброго вечора," & " " & "ми з України!"
MsgBox (concatenatio)
End Sub
Результат объединения строк всегда имеет тип данных String. Поэтому, даже если выражение не является строкой, то оно всё равно будет преобразовано в тип String.
Пример
Sub myCode()
concatenatio = "Доброго вечора," & " " & "ми з України! " & 2022 & " рік"
MsgBox (concatenatio)
End Sub
В данном примере, 2022 мы не заключили в кавычки. Но VBA понимает, что мы пытаемся выполнить объединение строк и потому число 2022 будет преобразовано в тип String.
Конкатенация в VBA
Для наглядности, давайте рассмотрим ещё один пример, в котором будет выполнена конкатенация переменных, которые имеют разный тип данных.
Sub myCode()
Dim a As String
Dim b As String
Dim n As Integer
a = "Доброго вечора, "
b = "ми з України! "
n = 2022
concatenatio = a & b & n
MsgBox (concatenatio)
End Sub
В этом примере, несмотря на то, что для переменной n мы явно указали тип Integer (целое число), компилятор VBA, преобразует его в тип String, поскольку в выражении происходит именно слияние строк.