Выравнивание текста и других значений в ячейке по горизонтали и вертикали из кода VBA Excel. Свойства HorizontalAlignment и VerticalAlignment. Примеры.
Выравнивание по горизонтали
Для выравнивания текста в ячейках рабочего листа по горизонтали в VBA Excel используется свойство HorizontalAlignment объекта Range. Оно может принимать следующие значения:
Выравнивание | Константа | Значение |
---|---|---|
По левому краю | xlLeft | -4131 |
По центру | xlCenter | -4108 |
По правому краю | xlRight | -4152 |
Равномерно по ширине | xlJustify | -4130 |
По умолчанию | xlGeneral | 1 |
Константу использовать удобнее, так как ее можно выбрать из подсказок и легче запомнить. Но и присвоение свойству HorizontalAlignment непосредственно числового значения константы будет работать точно так же.
Пример 1
Заполним три первые ячейки листа Excel текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по горизонтали, а в ячейках ниже выведем соответствующие значения констант.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub Primer1() 'Заполняем ячейки текстом Range("A1") = "Левая сторона" Range("B1") = "Центр ячейки" Range("C1") = "Правая сторона" 'Применяем горизонтальное выравнивание Range("A1").HorizontalAlignment = xlLeft Range("B1").HorizontalAlignment = xlCenter Range("C1").HorizontalAlignment = xlRight 'Выводим значения констант Range("A2") = "xlLeft = " & xlLeft Range("B2") = "xlCenter = " & xlCenter Range("C2") = "xlRight = " & xlRight End Sub |
Выравнивание по вертикали
Для выравнивания текста в ячейках рабочего листа по вертикали в VBA Excel используется свойство VerticalAlignment объекта Range. Оно может принимать следующие значения:
Выравнивание | Константа | Значение |
---|---|---|
По верхнему краю | xlTop | -4160 |
По центру | xlCenter | -4108 |
По нижнему краю | xlBottom | -4107 |
Равномерно по высоте | xlJustify | -4130 |
Точно так же, как и по горизонтали, при выравнивании по вертикали свойству VerticalAlignment можно присваивать как значение в виде константы, так и непосредственно ее числовое значение.
Пример 2
Заполним три первые ячейки третьей строки листа Excel текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по вертикали, а в ячейках ниже выведем соответствующие значения констант.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub Primer2() 'Заполняем ячейки текстом Range("A3") = "Верх" Range("B3") = "Центр" Range("C3") = "Низ" 'Применяем вертикальное выравнивание Range("A3").VerticalAlignment = xlTop Range("B3").VerticalAlignment = xlCenter Range("C3").VerticalAlignment = xlBottom 'Выводим значения констант Range("A4") = "xlTop = " & xlTop Range("B4") = "xlCenter = " & xlCenter Range("C4") = "xlBottom = " & xlBottom End Sub |
Двойное выравнивание
В следующем примере рассмотрим выравнивание из кода VBA одновременно по горизонтали и вертикали. Причем, применим выравнивание ко всем ячейкам рабочего листа Excel, которые были задействованы в предыдущих примерах.
Пример 3
Записываем в ячейки диапазона «A1:C4» текст «Всё по центру», применяем горизонтальное и вертикальное выравнивание по центру для всего диапазона.
1 2 3 4 5 6 7 |
Sub Primer3() With Range("A1:C4") .Value = "Всё по центру" .HorizontalAlignment = -4108 .VerticalAlignment = xlCenter End With End Sub |
Обратите внимание, что выравнивание текста применяется как при использовании константы, так и соответствующего ей числового значения.
Как выровнять текст в ячейке содержащей определенный текст
Привет, Ирина!
Выровнять текст в ячейке, содержащей определенный текст, можно следующей строкой:
Спасибо ! Только ячейка при формировании документа каждый раз может менять координаты . Можно, если ячейка содержит опр текст , то выравнивание ( горизонталь, вертикаль, перенос текста и раздвинуть вниз ). Спасибо .
И если можно , то еще сразу, если ячейка которая может иметь разные координаты, содержит опр текст , то добавить сверху над ней строку (ячейку) и скопировать из этой ячейки в добавленную часть текста или весь текст. Спасибо .
Ирина, используйте цикл For Each … Next для поиска ячейки с нужным текстом в диапазоне:
Диапазон Selection замените на свой диапазон, а записанный в переменную myAddress адрес найденной ячейки используйте для дальнейших манипуляций с ней. Обратиться к ней можно до вставки над ней ячейки или строки – Range(myAddress), после вставки – Range(myAddress).Offset(1, 0).
Искомый текст содержит кавычки. При поиске выдает синтакс ошибку т.к. два раза повторяются кавычки «Искомый»название» текст». Убрать кавычки нельзя т.к. документ формируется из программы автоматически
Здравствуйте!
Не худо бы добавить в таблицы
xlGeneral
..HorizontalAlignment = 1
‘илиxlGeneral
Отмена выравнивания и возврат к выравниванию на основании значения(й).
Спасибо за подсказку! Добавил.
Обсуждение закрыто.