Перейти к содержимому

VBA Excel. Перенос кода процедуры и текста на новую строку

Перенос части кода одного выражения VBA Excel на другую строку. Объединение нескольких операторов в одной строке. Программный перенос текста на новую строку.

  1. Перенос части выражения на новую строку
  2. Объединение операторов в одной строке
  3. Программный перенос текста на другую строку

Обратите внимание, что в этой статье слова «оператор» и «выражение» употребляются в одном значении. Они обозначают минимальный исполняющийся код VBA, расположенный в одной строке.

'Каждая строка - один
'оператор/выражение
Dim a As Long, b As Long
a = 12
b = a + 25

Перенос части выражения на новую строку

Деление длинного оператора на части улучшит его читаемость, сделает код процедуры более наглядным и компактным, не позволит ему уходить за пределы видимого экрана справа.

Переносимые на новые строки части кода одного выражения разделяются символом нижнего подчеркивания (_), который ставится обязательно после пробела. Этот символ указывает компилятору VBA Excel, что ниже идет продолжение текущей строки.

Пример 1
Процедуры без переноса и с переносом части кода операторов:

'Процедура без переноса
'кода операторов
Sub Primer_1_1()
Dim a As Long, b As Long
a = 12 * 7 - 15 / 5 + 36
b = a + 25 + 36 * 15 - 5
MsgBox b
End Sub
'Процедура с переносом
'кода операторов
Sub Primer_1_2()
Dim a As Long, _
b As Long
a = 12 * 7 - 15 _
/ 5 + 36
b = a + 25 + 36 _
* 15 - 5
MsgBox b
End Sub

Вы можете скопировать код Примера 1 и проверить его работоспособность. В обоих случаях информационное окно MsgBox покажет одинаковый результат.

Иногда пишут, что для переноса кода добавляется пробел с символом подчеркивания. Так легче запомнить и не забыть, что перед знаком подчеркивания обязательно должен быть пробел. Но на самом деле, как видите из примера выше, пробелы уже есть в исходном коде, и мы добавили только символы подчеркивания.

Объединение операторов в одной строке

Множество коротких выражений в коде VBA Excel можно объединить в одной строке. Для этого используется символ двоеточия с пробелом «: », который указывает компилятору, что за ним идет следующий оператор.

Пример 2
Процедуры без объединения и с объединением операторов:

'Процедура без объединения
'операторов
Sub Primer_2_1()
Dim a As Long, b As Long, c As Long
a = 12
b = a + 25
c = a * b
MsgBox c
End Sub
'Процедура с объединением
'операторов
Sub Primer_2_2()
Dim a As Long, b As Long, c As Long
a = 12: b = a + 25: c = a * b: MsgBox c
End Sub

Во втором примере, как и в первом, информационное окно MsgBox покажет одинаковый результат.

Программный перенос текста на другую строку

Для программного переноса произвольного текста на новую строку в VBA Excel используются следующие ключевые слова:

  • vbCr – возврат каретки;
  • vbLf – перевод строки;
  • vbCrLf – возврат каретки и перевод строки, аналог нажатия клавиши «Enter»;
  • vbNewLine – новая строка.

Выражения «возврат каретки» и «перевод строки» идут от механических пишущих машин (печатных машинок).

Пример 3
Проверяем работоспособность перечисленных выше ключевых слов по программному переносу текста на новые строки в ячейке и информационном окне MsgBox:

Sub Primer_3()
'Перенос текста в ячейке
Range("B2") = "Первая строка + vbCr" & vbCr & _
"Вторая строка + vbLf" & vbLf & _
"Третья строка + vbCrLf" & vbCrLf & _
"Четвертая строка + vbNewLine" & vbNewLine & _
"Пятая строка"
'Перенос текста в информационном окне
MsgBox "Первая строка + vbCr" & vbCr & _
"Вторая строка + vbLf" & vbLf & _
"Третья строка + vbCrLf" & vbCrLf & _
"Четвертая строка + vbNewLine" & vbNewLine & _
"Пятая строка"
End Sub

Получился следующий результат:

Результаты программного переноса текста на новую строку в ячейке и информационном окне MsgBox
Результат четырех переносов текста на новую строку

Как видно на изображении, ключевое слово «vbCr» не сработало в ячейке для переноса текста на другую строку, хотя сработало в информационном окне MsgBox.

Ключевые слова «vbCr» и «vbLf» я использовал исключительно для ознакомления, а на практике следует применять для переноса текста на новую строку – «vbCrLf» и «vbNewLine».

Добавить комментарий

Ваши комментарии, отправленные после 19 мая, будут опубликованы в конце мая после выхода на работу модератора. Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.