Содержание
- Microsoft Office Excel: Нельзя установить свойство HorizontalAlignment клас
- VBA Excel. Свойства ячейки (объекта Range)
- Ячейка и объект Range
- Свойства ячейки (объекта Range)
- Простые примеры для начинающих
- Форматирование ячеек
- Несколько способов форматирования и обработки данных в Excel документах с помощью IS-Builder.
Microsoft Office Excel: Нельзя установить свойство HorizontalAlignment клас
(1)
🙂
буквы это конкретика
а я про теорию.
вот
_ОкноЕхс.Windows(_ВыбФ).Activate();
.
_ОкноЕхс.Range(Диапп).Select();
_ОкноЕхс.Selection.Columns.AutoFit();
_ОкноЕхс.Selection.HorizontalAlignment=1;
а аутофит отрабатывает..
(3)
🙂
да я знаю
просто 1 это то же что ..
Если видВыр=0 Тогда //установить по левому краю
Align = 1;//-1431
ИначеЕсли видВыр=2 Тогда // установить по правому краю
Align = -4152;
ИначеЕсли видВыр=1 Тогда // установить по центру
Align = -4108;
КонецЕсли;
_ОкноЕхс.Selection.HorizontalAlignment=Align;
эксель же принципиально не связывает range и horizontal alignment
..
хотя я брал код из работающего куска
но там диапазон = строка.
вот и думаю
Процедура ДеИнициализацияЭксель()
Если ПустоеЗначение(лЭксель) = 0 Тогда
лЭксель.ActiveWorkbook.Save();
лЭксель.WorkBooks.Close();
лЭксель.Quit();
лЭксель = 0;
КонецЕсли;
КонецПроцедуры
Процедура ЗапускМакроса()
scrptCtrl = СоздатьОбъект(«MSScriptControl.ScriptControl»);
scrptCtrl.Language = «vbscript»;
лКод = »
|Function ExecMacros(lApp)
|
| With lApp.Selection
| .HorizontalAlignment = -4152 ‘xlRight
| End With
|
|End Function
|»;
scrptCtrl.AddCode(лКод);
scrptCtrl.Run(«ExecMacros», лЭксель);
КонецПроцедуры
Функция ИнициализацияЭксель()
Рез = 0;
Если ПустоеЗначение(лЭксель) = 1 Тогда
Если СокрЛП(ПутьКФайлу) <> «» Тогда
Попытка
лЭксель = СоздатьОбъект(«Excel.Application»);
Исключение
Сообщить(ОписаниеОшибки(),»!»);
Сообщить(«Возможно, MS Excel не установлен на этом компьютере.»);
Возврат 0 ;
КонецПопытки;
Попытка
лЭксель.WorkBooks.Open(ПутьКФайлу);
Исключение
Предупреждение(«По указанному пути: «»» + ПутьКФайлу + «»» ничего нет. «);
лЭксель.Quit();
лЭксель = 0;
КонецПопытки;
Рез = 1;
КонецЕсли;
Иначе
Рез = 1;
КонецЕсли;
Возврат Рез;
КонецФункции
Процедура ВыбратьФайл()
Перем Имя, Каталог;
Если ФС.ВыбратьФайл(0, Имя, Каталог, «Путь к файлу Excel»,
«Файлы XLS (*.xls)|*.xls»,»*.xls») <> 1
Тогда
Возврат;
КонецЕсли;
ПутьКФайлу = СокрЛП(Каталог) + СокрЛП(Имя);
КонецПроцедуры// ВыбратьФайл()
Процедура Сформировать()
ИнициализацияЭксель();
Попытка
лТекЛист = лЭксель.WorkSheets(«Лист1»);
лТекЛист.Activate();
лТекЛист.Range(лТекЛист.Cells(1, 1), лТекЛист.Cells(10, 1)).Select();
ЗапускМакроса();
Исключение
ДеинициализацияЭксель();
Возврат;
КонецПопытки;
ДеинициализацияЭксель();
КонецПроцедуры
Вот так работает. Свойство Selection желательно не использовать, можешь захватить другие объекты кроме ячеек.
Источник
VBA Excel. Свойства ячейки (объекта Range)
Свойства ячейки, часто используемые в коде VBA Excel. Демонстрация свойств ячейки, как структурной единицы объекта Range, на простых примерах.
Ячейка и объект Range
Объект Range в VBA Excel представляет диапазон ячеек. Он (объект Range) может описывать любой диапазон, начиная от одной ячейки и заканчивая сразу всеми ячейками рабочего листа.
- Одна ячейка – Range(«A1») .
- Девять ячеек – Range(«A1:С3») .
- Весь рабочий лист в Excel 2016 – Range(«1:1048576») .
В VBA Excel есть свойство Cells объекта Range, которое позволяет обратиться к одной ячейке в указанном диапазоне (возвращает объект Range в виде одной ячейки). Если в коде используется свойство Cells без указания диапазона, значит оно относится ко всему диапазону активного рабочего листа.
Примеры обращения к одной ячейке:
- Cells(1000) , где 1000 – порядковый номер ячейки на рабочем листе, возвращает ячейку «ALL1».
- Cells(50, 20) , где 50 – номер строки рабочего листа, а 20 – номер столбца, возвращает ячейку «T50».
- Range(«A1:C3»).Cells(6) , где «A1:C3» – заданный диапазон, а 6 – порядковый номер ячейки в этом диапазоне, возвращает ячейку «C2».
Подробнее о том, как обратиться к ячейке, смотрите в статье: Ячейки (обращение, запись, чтение, очистка).
В этой статье мы рассмотрим свойства объекта Range, применимые, в том числе, к диапазону, состоящему из одной ячейки.
Еще надо добавить, что свойства и методы объектов отделяются от объектов точкой, как в третьем примере обращения к одной ячейке: Range(«A1:C3»).Cells(6) .
Свойства ячейки (объекта Range)
Свойство | Описание |
---|---|
Address | Возвращает адрес ячейки (диапазона). |
Borders | Возвращает коллекцию Borders, представляющую границы ячейки (диапазона). Подробнее… |
Cells | Возвращает объект Range, представляющий коллекцию всех ячеек заданного диапазона. Указав номер строки и номер столбца или порядковый номер ячейки в диапазоне, мы получаем конкретную ячейку. Подробнее… |
Characters | Возвращает подстроку в размере указанного количества символов из текста, содержащегося в ячейке. Подробнее… |
Column | Возвращает номер столбца ячейки (первого столбца диапазона). Подробнее… |
ColumnWidth | Возвращает или задает ширину ячейки в пунктах (ширину всех столбцов в указанном диапазоне). |
Comment | Возвращает комментарий, связанный с ячейкой (с левой верхней ячейкой диапазона). |
CurrentRegion | Возвращает прямоугольный диапазон, ограниченный пустыми строками и столбцами. Очень полезное свойство для возвращения рабочей таблицы, а также определения номера последней заполненной строки. |
EntireColumn | Возвращает весь столбец (столбцы), в котором содержится ячейка (диапазон). Диапазон может содержаться и в одном столбце, например, Range(«A1:A20») . |
EntireRow | Возвращает всю строку (строки), в которой содержится ячейка (диапазон). Диапазон может содержаться и в одной строке, например, Range(«A2:H2») . |
Font | Возвращает объект Font, представляющий шрифт указанного объекта. Подробнее о цвете шрифта… |
HorizontalAlignment | Возвращает или задает значение горизонтального выравнивания содержимого ячейки (диапазона). Подробнее… |
Interior | Возвращает объект Interior, представляющий внутреннюю область ячейки (диапазона). Применяется, главным образом, для возвращения или назначения цвета заливки (фона) ячейки (диапазона). Подробнее… |
Name | Возвращает или задает имя ячейки (диапазона). |
NumberFormat | Возвращает или задает код числового формата для ячейки (диапазона). Примеры кодов числовых форматов можно посмотреть, открыв для любой ячейки на рабочем листе Excel диалоговое окно «Формат ячеек», на вкладке «(все форматы)». Свойство NumberFormat диапазона возвращает значение NULL, за исключением тех случаев, когда все ячейки в диапазоне имеют одинаковый числовой формат. Если нужно присвоить ячейке текстовый формат, записывается так: Range(«A1»).NumberFormat = «@» . Общий формат: Range(«A1»).NumberFormat = «General» . |
Offset | Возвращает объект Range, смещенный относительно первоначального диапазона на указанное количество строк и столбцов. Подробнее… |
Resize | Изменяет размер первоначального диапазона до указанного количества строк и столбцов. Строки добавляются или удаляются снизу, столбцы – справа. Подробнее… |
Row | Возвращает номер строки ячейки (первой строки диапазона). Подробнее… |
RowHeight | Возвращает или задает высоту ячейки в пунктах (высоту всех строк в указанном диапазоне). |
Text | Возвращает форматированный текст, содержащийся в ячейке. Свойство Text диапазона возвращает значение NULL, за исключением тех случаев, когда все ячейки в диапазоне имеют одинаковое содержимое и один формат. Предназначено только для чтения. Подробнее… |
Value | Возвращает или задает значение ячейки, в том числе с отображением значений в формате Currency и Date. Тип данных Variant. Value является свойством ячейки по умолчанию, поэтому в коде его можно не указывать. |
Value2 | Возвращает или задает значение ячейки. Тип данных Variant. Значения в формате Currency и Date будут отображены в виде чисел с типом данных Double. |
VerticalAlignment | Возвращает или задает значение вертикального выравнивания содержимого ячейки (диапазона). Подробнее… |
В таблице представлены не все свойства объекта Range. С полным списком вы можете ознакомиться не сайте разработчика.
Простые примеры для начинающих
Вы можете скопировать примеры кода VBA Excel в стандартный модуль и запустить их на выполнение. Как создать стандартный модуль и запустить процедуру на выполнение, смотрите в статье VBA Excel. Начинаем программировать с нуля.
Учтите, что в одном программном модуле у всех процедур должны быть разные имена. Если вы уже копировали в модуль подпрограммы с именами Primer1, Primer2 и т.д., удалите их или создайте еще один стандартный модуль.
Форматирование ячеек
Заливка ячейки фоном, изменение высоты строки, запись в ячейки текста, автоподбор ширины столбца, выравнивание текста в ячейке и выделение его цветом, добавление границ к ячейкам, очистка содержимого и форматирования ячеек.
Если вы запустите эту процедуру, информационное окно MsgBox будет прерывать выполнение программы и сообщать о том, что произойдет дальше, после его закрытия.
Источник
Несколько способов форматирования и обработки данных в Excel документах с помощью IS-Builder.
Опубликовано:
31 марта 2014 в 12:34
Нередко приходится сталкиваться с ситуацией, когда нужно отформатировать xls-документ непосредственно в коде. В этой статье хотелось привести несколько примеров форматирования данных. Итак, начнем.
Обозначим переменные, которые будут использоваться в дальнейшем.
- Выделение всего текста в ячейке
- Data.Range(CellHL; CellBR). Font.Bold = True // жирным
- Data.Range(CellHL; CellBR).Font.Italic = True // курсивом
- Data.Range(CellHL; CellBR). Font.Underline = True //подчеркиванием
- Выделение определенного слова в тексте ячейки
- Объединение ячеек
- Установка размера шрифта
- Установка цвета текста
- Горизонтальное выравнивание ячейки
Режим выравнивания
Константа в Excel
Значение в ISBL
По центру выделения
По правому краю
- Вертикальноевыравнивание ячейки
Режим выравнивания
Константа в Excel
Значение в ISBL
По нижнему краю
По верхнему краю
- Отступ
- Установка темы шрифта
- Установка ширины ячеек
- Установка высоты ячеек
- Установка границы ячейки и тип линии границы
Значения константы XlBordersIndex:
Расположение линии
Значение в Excel
Константа в ISBL
Линия по диагонали сверху – вниз
Линия по диагонали снизу – вверх
Линия, обрамляющая диапазон слева
Линия, обрамляющая диапазон сверху
Линия, обрамляющая диапазон снизу
Линия, обрамляющая диапазон справа
Все вертикальные линии внутри диапазона
Все горизонтальные линии внутри диапазона
Свойство LineStyle (тип линии) может принимать значения:
Тип линии
Значение в Excel
Константа в ISBL
(_._._._._) В виде тире и точек
(_.._.._..) В виде тире и двойных точек
(=====) В виде двойной линии
(/././././) В виде наклонной пунктирной
- Установка толщины линии границы
Значения константы XlBorderWeight
Толщина линии
Значение в Excel
Константа в ISBL
- Установка цвета линии границы
где Index:
- Установка отметки напротив пункта «переносить по словам»
- Отключение/включение режима показа предупреждений
- Сохранение книги вpdf формат
- 0 — значение Microsoft.Office.Interop.Excel.XlFixedFormatType, указывающее, сохранять книгу в формате PDF;
- Filename — полный путь к новому файлу формата PDF;
- 1 — значение Microsoft.Office.Interop.Excel.XlFixedFormatQuality, определяющее качество экспортируемого файла;
- IncludeDocProperties — значение true, чтобы включить свойства документа в новый экспортированный файл; в противном случае — значение false;
- IgnorePrintAreas — значение true, чтобы пропускать области печати, установленные при экспорте; в противном случае — false.
- Построениесводнойтаблицы
// Вставка сводной таблицы
- 1 — значение константы xlPivotTableSourceType;
- SourceData – данные для нового сводной таблицы (диапазон ячеек);
- TableDestination — диапазон на листе, где будет помещена итоговая Сводная таблица
- TableName — имя новой Сводной таблицы
где NameColumn – название колонки, которое совпадает с именем колонки в шапке таблицы с листа исходных данных.
Значения констант параметра Функции:
0 – сумма; 1 – количество; 2 – среднее; 3 – максимум; 4 – минимум.
- Вставка гиперссылки на запись справочника в ячейку
В дальнейшем планирую написать аналогичную статью для MS Word.
Источник
9 / 9 / 1 Регистрация: 22.11.2009 Сообщений: 174 |
|
1 |
|
Как сделать выравнивание текста в ячейке16.02.2012, 21:05. Показов 52401. Ответов 8
Мпа, добрый вечер! Скажите, пожалуйста, как сделать выравнивание текста в ячейке средствами VBA? Какое свойство за это отвечает? Заранее спасибо за ответ!
0 |
Watcher_1 356 / 162 / 27 Регистрация: 21.06.2011 Сообщений: 350 |
||||
16.02.2012, 21:23 |
2 |
|||
2 |
Sasha_Smirnov 5561 / 1367 / 150 Регистрация: 08.02.2009 Сообщений: 4,107 Записей в блоге: 30 |
||||||||
16.02.2012, 21:24 |
3 |
|||||||
А знаете как я сделал… Записал макрос и посмотрел по Alt-F11. Лишнее убрал. А теперь таким же макаром — для ворда. Подсказка: дежим зажатой клавишу Ctrl и жмём буквы: У (она же E) (по центру), R (вправо), L (влево). А вот и
2 |
9 / 9 / 1 Регистрация: 22.11.2009 Сообщений: 174 |
|
16.02.2012, 21:27 [ТС] |
4 |
Ура, спасибо!!! Sasha_Smirnov, Слушайте, Вы гений!!! Молодец, отличная идея… Супер!
1 |
5561 / 1367 / 150 Регистрация: 08.02.2009 Сообщений: 4,107 Записей в блоге: 30 |
|
17.02.2012, 00:23 |
5 |
Особо «гениален» глагол дежим… этакое дежавю. Вообще-то я догадывался, что делаю «открытие Америки», но способ совершенно естественный.
1 |
avenger24 1 / 1 / 0 Регистрация: 02.04.2015 Сообщений: 84 |
||||
14.04.2016, 12:33 |
6 |
|||
Sasha_Smirnov, а не подскажешь как выровнить в Wordе по вертикали по центру ?
0 |
Заблокирован |
||||
14.04.2016, 12:59 |
7 |
|||
?
0 |
0 / 0 / 0 Регистрация: 22.12.2011 Сообщений: 212 |
|
25.05.2016, 09:17 |
8 |
а если надо по горизонтали, в cell.horizontalAligment нету
0 |
Заблокирован |
|
25.05.2016, 09:23 |
9 |
cell.horizontalAligment нету А такое может есть —
0 |
title | keywords | f1_keywords | ms.prod | api_name | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|---|
CellFormat.HorizontalAlignment property (Excel) |
vbaxl10.chm676080 |
vbaxl10.chm676080 |
excel |
Excel.CellFormat.HorizontalAlignment |
396eb959-379d-abb4-96b8-e41f5ebf8125 |
04/16/2019 |
medium |
CellFormat.HorizontalAlignment property (Excel)
Returns or sets a Variant value that represents the horizontal alignment for the specified object.
Syntax
expression.HorizontalAlignment
expression A variable that represents a CellFormat object.
Remarks
The value of this property can be set to one of the XlHAlign constants.
Some of these constants may not be available to you, depending on the language support (U.S. English, for example) that you’ve selected or installed.
[!includeSupport and feedback]