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

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».

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

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

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег [vb] и по окончании кода - [/vb].