In this article I will explain how you can change the orientation of the content in cells. I have also provided several sample codes.
Jump To:
- Example 1, Basics
- Example 2, Set Orientation
- Example 3, Get Orientation
You can download the file and code related to this article here.
–
Example 1, Basics:
The following code applies a 28 deg orientation to the contents of cell A1:
Range("A1").Orientation = 28
Before:
Result:
–
Example 2, Set Orientation:
In this example in row 1 the user selects the orientation to apply to the content of the cells in row 2:
Before:
After:
The program uses a worksheet_change event handler. The event handler executes when the user makes changes to the worksheet:
'executes when the user makes changes to the worksheet
Private Sub worksheet_Change(ByVal target As Range)
Dim i As Integer
For i = 1 To 6
'loops through all the columns
Range(Cells(2, i), Cells(2, i)).Orientation = Cells(1, i)
Next i
End Sub
–
Example 3, Get Orientation:
In this example the user selects a lower and upper bound for the orientation. The program checks the orientation of the content in row 2. If the orientation falls between the upper and lower bounds selected by the user the cell in the next row is colored green:
By reducing the lower bound more cells will be colored green:
By increasing the upper bound more cells will be colored green:
The program uses a worksheet_change event handler. The event handler executes when the user makes changes to the worksheet:
'executes when the user makes changes to the worksheet
Private Sub worksheet_Change(ByVal target As Range)
Dim i As Integer
For i = 1 To 6
'checks if the orientation of the content in the cell under
'consideration is between the upper and lower bounds selected by
'the user
If (Range(Cells(2, i), Cells(2, i)).Orientation <= Cells(1, 4)) _
And (Range(Cells(2, i), Cells(2, i)).Orientation >= Cells(1, 2)) Then
Range(Cells(3, i), Cells(3, i)).Interior.Color = 3394611
Else
Range(Cells(3, i), Cells(3, i)).Interior.Pattern = xlNone
End If
Next i
End Sub
The line below colors the cell green. The number 3394611 is a color code. This was obtained using the macro recorder. For more information about about the macro recorder please see Excel VBA Formatting Cells and Ranges Using the Macro Recorder:
Range(Cells(3, i), Cells(3, i)).Interior.Color = 3394611
The line below removes any fill color previously assigned to the cell:
Range(Cells(3, i), Cells(3, i)).Interior.Pattern = xlNone
You can download the file and code related to this article here.
See also:
- VBA Excel, Alignment
If you need assistance with your code, or you are looking for a VBA programmer to hire feel free to contact me. Also please visit my website www.software-solutions-online.com
title | keywords | f1_keywords | ms.prod | api_name | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|---|
CellFormat.Orientation property (Excel) |
vbaxl10.chm676082 |
vbaxl10.chm676082 |
excel |
Excel.CellFormat.Orientation |
fd65a0f3-9870-2885-8bc3-85fc084082e6 |
04/16/2019 |
medium |
CellFormat.Orientation property (Excel)
Returns or sets a Variant value that represents the text orientation.
Syntax
expression.Orientation
expression A variable that represents a CellFormat object.
Remarks
The value of this property can be set to an integer value from -90 to 90 degrees or to one of the XlOrientation constants.
[!includeSupport and feedback]
Выравнивание текста и других значений в ячейке по горизонтали и вертикали из кода VBA Excel. Свойства HorizontalAlignment и VerticalAlignment. Примеры.
Выравнивание по горизонтали
Для выравнивания текста в ячейках рабочего листа по горизонтали в VBA Excel используется свойство HorizontalAlignment объекта Range. Оно может принимать следующие значения:
Выравнивание | Константа | Значение |
---|---|---|
По левому краю | xlLeft | -4131 |
По центру | xlCenter | -4108 |
По правому краю | xlRight | -4152 |
Равномерно по ширине | xlJustify | -4130 |
По умолчанию | xlGeneral | 1 |
Константу использовать удобнее, так как ее можно выбрать из подсказок и легче запомнить. Но и присвоение свойству HorizontalAlignment непосредственно числового значения константы будет работать точно так же.
Пример 1
Заполним три первые ячейки листа Excel текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по горизонтали, а в ячейках ниже выведем соответствующие значения констант.
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 текстом, соответствующим предполагаемому выравниванию. Затем применим к ним выравнивание по вертикали, а в ячейках ниже выведем соответствующие значения констант.
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» текст «Всё по центру», применяем горизонтальное и вертикальное выравнивание по центру для всего диапазона.
Sub Primer3() With Range(«A1:C4») .Value = «Всё по центру» .HorizontalAlignment = —4108 .VerticalAlignment = xlCenter End With End Sub |
Обратите внимание, что выравнивание текста применяется как при использовании константы, так и соответствующего ей числового значения.
Twony 0 / 0 / 0 Регистрация: 25.02.2019 Сообщений: 4 |
||||
1 |
||||
Excel Макрос ориентации текста25.02.2019, 15:55. Показов 2890. Ответов 7 Метки нет (Все метки)
Добрый день!
добавляет пустую строку, если текст в предыдущей отличается от следующей СПАСИБО ЗА ВНИМАНИЕ
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
25.02.2019, 16:19 |
2 |
|||
Можете попробовать так (для столбца A), только учтите, что кроме крайне левого и правого — есть и другие выравнивания.
0 |
0 / 0 / 0 Регистрация: 25.02.2019 Сообщений: 4 |
|
26.02.2019, 08:52 [ТС] |
3 |
Спасибо, проверил. Почти получилось)
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
26.02.2019, 08:57 |
4 |
Twony, Если что, то для работы нужна не картинка, а файл (.xls*)
0 |
0 / 0 / 0 Регистрация: 25.02.2019 Сообщений: 4 |
|
26.02.2019, 09:00 [ТС] |
5 |
пардоньте)
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
26.02.2019, 09:34 |
6 |
|||
Сообщение было отмечено Twony как решение РешениеНа основании файла :
1 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,930 |
||||
26.02.2019, 09:47 |
7 |
|||
такой подход
1 |
0 / 0 / 0 Регистрация: 25.02.2019 Сообщений: 4 |
|
27.02.2019, 07:21 [ТС] |
8 |
Спасибо ребята!
0 |
Форум программистов Vingrad
Новости ·
Фриланс ·
FAQ
Правила ·
Помощь ·
Рейтинг ·
Избранное ·
Поиск ·
Участники
Форум -> Компьютерные системы -> MS Office, Open Office и др. -> Программирование, связанное с MS Office
(еще)
Модераторы: mihanik |
Поиск: |
|
Как изменить направление текта в Excel |
Опции темы |
Jonnik |
|
||
Шустрый Профиль Репутация: нет
|
Как програмно через VBA изменить направление текста в Excel с горизонтального на вертикальный? |
||
|
|||
Genyaa |
|
||
Усердный Профиль
Репутация: 2
|
А как на счет того, чтобы записать макрорекордером это действие и посмотреть полученный код? ——————— Всякое решение плодит новые проблемы. |
||
|
|||
Jonnik |
|
||
Шустрый Профиль Репутация: нет
|
Типа такого
|
||
|
|||
|
Правила форума «Программирование, связанное с MS Office» | |
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми
Если Вам понравилась атмосфера форума, заходите к нам чаще! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
Подписаться на тему |
Подписка на этот форум |
Скачать/Распечатать тему
[ Время генерации скрипта: 0.0898 ] [ Использовано запросов: 21 ] [ GZIP включён ]
Реклама на сайте
Информационное спонсорство