Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Выравнивание текста в ячейке

    Выравнивание текста и других значений в ячейке по горизонтали и вертикали из кода VBA Excel. Свойства HorizontalAlignment и VerticalAlignment. Примеры.

    Выравнивание по горизонтали

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

    Выравнивание Константа Значение
    По левому краю xlLeft -4131
    По центру xlCenter -4108
    По правому краю xlRight -4152
    Равномерно по ширине xlJustify -4130
    По умолчанию xlGeneral 1

    Константу использовать удобнее, так как ее можно выбрать из подсказок и легче запомнить. Но и присвоение свойству HorizontalAlignment непосредственно числового значения константы будет работать точно так же.

    Пример 1
    Заполним три первые ячейки листа Excel текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по горизонтали, а в ячейках ниже выведем соответствующие значения констант.

    Выравнивание по вертикали

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

    Выравнивание Константа Значение
    По верхнему краю xlTop -4160
    По центру xlCenter -4108
    По нижнему краю xlBottom -4107
    Равномерно по высоте xlJustify -4130

    Точно так же, как и по горизонтали, при выравнивании по вертикали свойству VerticalAlignment можно присваивать как значение в виде константы, так и непосредственно ее числовое значение.

    Пример 2
    Заполним три первые ячейки третьей строки листа Excel текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по вертикали, а в ячейках ниже выведем соответствующие значения констант.

    Двойное выравнивание

    В следующем примере рассмотрим выравнивание из кода VBA одновременно по горизонтали и вертикали. Причем, применим выравнивание ко всем ячейкам рабочего листа Excel, которые были задействованы в предыдущих примерах.

    Пример 3
    Записываем в ячейки диапазона «A1:C4» текст «Всё по центру», применяем горизонтальное и вертикальное выравнивание по центру для всего диапазона.

    Обратите внимание, что выравнивание текста применяется как при использовании константы, так и соответствующего ей числового значения.


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

    7 комментариев для “VBA Excel. Выравнивание текста в ячейке”

    1. Как выровнять текст в ячейке содержащей определенный текст

      1. Евгений

        Привет, Ирина!
        Выровнять текст в ячейке, содержащей определенный текст, можно следующей строкой:

      2. Спасибо ! Только ячейка при формировании документа каждый раз может менять координаты . Можно, если ячейка содержит опр текст , то выравнивание ( горизонталь, вертикаль, перенос текста и раздвинуть вниз ). Спасибо .
        И если можно , то еще сразу, если ячейка которая может иметь разные координаты, содержит опр текст , то добавить сверху над ней строку (ячейку) и скопировать из этой ячейки в добавленную часть текста или весь текст. Спасибо .

      3. Евгений

        Ирина, используйте цикл For Each … Next для поиска ячейки с нужным текстом в диапазоне:

        Диапазон Selection замените на свой диапазон, а записанный в переменную myAddress адрес найденной ячейки используйте для дальнейших манипуляций с ней. Обратиться к ней можно до вставки над ней ячейки или строки – Range(myAddress), после вставки – Range(myAddress).Offset(1, 0).

    2. Искомый текст содержит кавычки. При поиске выдает синтакс ошибку т.к. два раза повторяются кавычки «Искомый»название» текст». Убрать кавычки нельзя т.к. документ формируется из программы автоматически

    3. Сбитый Лётчик Небосводов

      Здравствуйте!
      Не худо бы добавить в таблицы xlGeneral.
      .HorizontalAlignment = 1 ‘или xlGeneral
      Отмена выравнивания и возврат к выравниванию на основании значения(й).

    Обсуждение закрыто.