1С: Работа с Excel (1 часть)

Aug 15, 2022 15:25

СПОСОБ ПОИСКА НАИМЕНОВАНИЙ СВОЙСТВ И МЕТОДОВ VBA EXCEL С ПОМОЩЬЮ ЗАПИСИ МАКРОСОВ

На практике часто случается, что нужно решить какую-либо задачу, иногда довольно тривиальную с точки зрения пользователя Excel (к примеру изменить фон ячейки в Excel, добавить левую границу и т.д.), а решение в сети/документации искать не хочется или не получается, тогда можно попробовать начать запись макроса, выполнить нужную последовательность действий (изменить фон, добавить границу) , после чего записать макрос и открыть код VBA для анализа кода, названий свойств и методов. Такой способ довольно часто помогает быстро решить проблему.

1. Подключение к Excel

Попытка
Excel = Новый COMОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() + "Возможно программа Exсel не установлена на данном компьютере!");
Возврат Ложь;
КонецПопытки;

//Создание книги
Книга = Excel.WorkBooks.Add();

//Открытие существующей книги
Книга = Excel.WorkBooks.Open(ПутьКФайлу);

//Выбор рабочего листа по номеру
Лист = WorkBook.WorkSheets(НомерЛиста);

//Выбор рабочего листа по имени
Лист = WorkBook.WorkSheets(ИмяЛиста);

//Сохранение книги
Попытка
Книга.SaveAs(ПутьКФайлу);
Книга.Close();
Excel.Quit();
Исключение
Книга.Close();
Excel.Quit();
КонецПопытки;


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

2. Запись значения в ячейку

ТекущийЛист.Cells(i, j).Value = "2";

Количество листов книги

КоличествоЛистов = Книга.Sheets.Count;

3. Шрифт и размер шрифта

//Выделение области
Excel.Columns("A:H").Select();

//Размер шрифта
Лист.Cells.Font.Size = 12;

//Тип шрифта
Лист.Cells.Font.Name = "Calibri";

//1 - жирный шрифт, 0 - обычный.
Лист.Cells.Font.Bold = 1;

//1 - наклонный шрифт, 0 - обычный.
Лист.Cells.Font.Italic = 1;

//2 - подчеркнутый, 1 - нет.
Лист.Cells.Font.Underline = 1;

Как указать цвет шрифта в ячейке, цвет рамки, цвет фона

Книга.Sheets(1).Cells(1,1).Borders.Color = 25525124; // цвет рамки
Книга.Sheets(1).Cells(1,1).Font.Color = 255000000; // цвет шрифта
Книга.Sheets(1).Cells(1,1).Interior.Color = 255045; // цвет фона

4. Ширина колонки

Чтобы скрыть колонку, нужно установить ширину в значение 0.

Лист.Columns(НомерКолонки).ColumnWidth = Ширина;

Получение последней ячейки в используемом диапазоне

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

ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column;
ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;

4. Установка фильтра

Лист.Cells.AutoFilter();

5. Горизонтальное выравнивание ячейки

ТекущийЛист.Cells(i, j).HorizontalAlignment = -4130;

Режим выравнивания

Константа в Excel

Значение в ISBL

По центру

xlHAlignCenter

-4108

По центру выделения

xlHAlignCenterAcrossSelection

7

Распределенное

xlHAlignDistributed

-4117

С заполнением

xlHAlignFill

5

По значению

xlHAlignGeneral

1

По ширине

xlHAlignJustify

-4130

По левому краю

xlHAlignLeft

-4131

По правому краю

xlHAlignRight

-4152

6. Вертикальное выравнивание ячейки

ТекущийЛист.Cells(i, j).VerticalAlignment = -4130;

Режим выравнивания

Константа в Excel

Значение в ISBL

По нижнему краю

xlVAlignBottom

-4107

По центру

xlVAlignCenter

-4108

Распределенное

xlVAlignDistributed

-4117

По высоте

xlVAlignJustify

-4130

По верхнему краю

xlVAlignTop

-4160

7. Установка свойства ячейки "переносить по словам"

ТекущийЛист.Cells(i, j).WrapText = True;

8. Отключение/включение режима показа предупреждений

ExcelApp.DisplayAlerts = False; // отключение
ExcelApp.DisplayAlerts = True; // включение

9. Формулы

ТекущийЛист.Cells(i, j).Formula = "SUM(A1:A10)";

Для формул с русскими названиями нужно использовать не Formula, а FormulaLocal. Таким образом правильными вариантами написания формул будут:

ТекущийЛист.Cells(i, j).FormulaLocal = "Сумм(A1:A10)";

10. Таблица цветов с индексами



//Установка цвета текста ячейки
ТекущийЛист.Cells(i, j).Font.ColorIndex = 8;

//Установка цвета фона ячейки
ТекущийЛист.Cells(i, j).Interior.Color = 49;

//Установка цвета рамки
ТекущийЛист.Cells(i, j).Borders.Color = 8;

11. Установка границы ячейки и тип линии границы

Значения константы XlBordersIndex

Тип линии

Значение в Excel

Значение в ISBL

Нет линии

xlLineStyleNone

0

Непрерывная

xlContinuous

1

В виде тире и точек

xlDashDot

4

В виде тире и двойных точек

xlDashDotDot

5

В виде точек

xlDot

8

В виде двойной линии

xlDouble

9

В виде наклонной пунктирной

xlSlantDashDot

13

Свойство LineStyle (тип линии) может принимать следующие значения

Расположение линии

Значение в Excel

Значение в ISBL

Линия по диагонали сверху - вниз

xlDiagonalDown

5

Линия по диагонали снизу - вверх

xlDiagonalUp

6

Линия, обрамляющая диапазон слева

xlEdgeLeft

7

Линия, обрамляющая диапазон сверху

xlEdgeTop

8

Линия, обрамляющая диапазон снизу

xlEdgeBottom

9

Линия, обрамляющая диапазон справа

xlEdgeRight

10

Все вертикальные линии внутри диапазона

xlInsideVertical

11

Все горизонтальные линии внутри диапазона

xlInsideHorizontal

12

1С: Работа с Excel (2 часть)

Смотрите также:
Электронный учебник по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, ни­дер­ландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up