Модель объектов Excel Содержание Введение 1. Проектирование программного модуля 1.1 Математическое описание задачи 1.2 Разработка схемы алгоритма и ее описание 2. Реализация программного модуля 2.1 Код программы 2.2 Описание использованных операторов 3. Тестирование программного модуля Заключение Список использованных источников Приложения Введение Программа MS Excel, являясь лидером на рынке программ обработки электронных таблиц, определяет тенденции развития в этой области. Вплоть до версии 4.0 программа Excel представляла собой фактический стандарт с точки зрения функциональных возможностей и удобства работы. Теперь на рынке появилась версия Excel XP в пакете MS Office XP, которая содержит много улучшений и приятных неожиданностей. К значительным достижениям в новых версиях программы Excel можно отнести появление трехмерных документов (блокнотов). Установление связей между файлами и таблицами значительно упростилось по сравнению с прежними версиями. Контекстные меню значительно расширены, а дополнительные программные инструменты облегчают решение сложных прикладных задач. Следует также упомянуть о различных помощниках (Ассистентах), которые помогают пользователю задавать функции и выдают рекомендации, если существует более простой метод решения текущей задачи. В программу Excel встроена удобная подсистема помощи, которая в любой момент готова выдать необходимую справку. Описанные до сих пор новшества касаются в основном комфорта в работе и быстрого функциональных освоения расширений программы. программы, Одним из важнейших предназначенным для профессионалов, является встроенная в Excel Среда программирования Visual Basic (VBA) для решения прикладных задач. Благодаря VBA фирме Microsoft удалось не только расширить возможности языка макрокоманд Excel 4.0, но и ввести новый уровень прикладного программирования, поскольку VBA позволяет создавать полноценные прикладные пакеты, которые по своим функциям выходят далеко за рамки обработки электронных таблиц. Начиная с версии 5.0, в программу Excel включен специальный язык программирования, который получил название Visual Basic for Applications (VBA). Введение достаточно мощного языка программирования в Excel делает эту программную платформу весьма привлекательной для профессионалов, которые занимаются разработкой специализированных прикладных систем. Разработка языка программирования VBA, встраиваемого в прикладные системы, является одним из стратегических направлений компании Microsoft. Этот язык уже интегрирован в такие программы, как Word, PowerPoint, Access пакета Microsoft Office 97. VBA позволяет создавать программные модули, меню, диалоговые окна и другие ресурсы в среде Windows. Благодаря этому языку появляется возможность значительно расширить набор функций в Excel, а также создавать функции, значения которых зависят от некоторых условий и событий. В принципе, можно полностью перепрограммировать все функции программы Excel, если в этом появилась необходимость. Целью контрольной работы на тему «Основы программирования на VBA: Модель объектов Exel» является разработка и реализация программы расчета заданной функции на языке программирования VBA, оформление пояснительной записки. В разделе «Проектирование программного модуля» «Математическое описание задачи» описана математическая пункт модель, параметры и характеристики задачи, а также приведены критерии оценки эффективности созданного модуля. В разделе «Проектирование программного модуля» пункт «Разработка схемы алгоритма и ее описание» приведена схема алгоритма с учетом возможностей языка VBA. В разделе «Реализация программного модуля» пункт «Код программы» разрабатывается исходный код модуля с пользовательским интерфейсом. В разделе «Реализация программного модуля» пункт «Описание использованных операторов» приводится перечень операторов, использованных в программе, с кратким описанием каждого оператора. В разделе «Тестирование программного модуля» проводится описание запуска тестового примера. Приложение «Текст программы» содержит распечатку процедур основного модуля программы. Приложение «Тестовый пример» содержит экранную копию в момент тестирования программы. 1. Проектирование программного модуля 1.1 Математическое описание задачи Целью данной контрольной работы является проектирование системы, оптимальным образом ориентированной на решение поставленной прикладной задачи. В результате анализа математической модели системы необходимо определить исходные данные для синтеза системы, которые включают в себя: Функцию системы, определенную номенклатурой прикладной задачи; Параметры и характеристики системы с областью их действия и ограничениями на них; Критерий эффективности функционирования системы, предлагаемой с целью проверки на оптимальность объекта проектирования. Номенклатурой, в нашем случае это задание к контрольной работе, определяется следующая функция системы: O_stoim = Potr / 100 * Zena * O_prob, (1.1) где O_stoim – общая стоимость, руб; Potr – потребление бензина на 100 км, л; Zena – цена 1-го литра бензина, руб; O_prob – общий пробег, км. Параметры и характеристики системы представлены в таблице 1.1 Таблица 1.1 Параметры и характеристики системы Имя Тип Ограничение Роль в модуле N_auto String 2^16 символов параметр M_auto String 2^16 символов параметр M_benz String 2^16 символов параметр q String 2^16 символов характеристика B String 2^16 символов характеристика E String 2^16 символов характеристика O_prob single -3,402823Е38.. 3,402823Е38 параметр Potr single -3,402823Е38.. 3,402823Е38 параметр Zena single -3,402823Е38.. 3,402823Е38 параметр O_stoim single -3,402823Е38.. 3,402823Е38 параметр Тип параметров и характеристик определяется исходя из требований математической функции и возможностей языка программирования. Например, характеристика q используется только в расчете, пользователь не должен ее изменять, в отличие от O_prob, Potr и др. Ограничение на переменные определяются исходя из требований функции к ним и возможностей языка (зависит от количества памяти, выделенной под данную переменную). Критерии эффективности функционирования системы вырабатываются исходя из требований постановки задачи и современных требований пользователя к программе и ее интерфейсу. Правильность расчета; Возможность ввода исходных данных в любое время работы программы, кроме того момента, когда осуществляется расчет; Обязательное отображение результатов расчета на рабочем листе и на пользовательской форме; Использование удобного пользовательского интерфейса. Это основные критерии оценки эффективности функционирования системы, которые позволят проверить работоспособность и оптимальность созданного продукта. Проверка описана ниже в пункте «Тестирование программного модуля» 1.2 Разработка схемы алгоритма и ее описание Используя генератор пользовательских форм можно реализовать удобный интерфейс ввода и вывода данных. Это несложно сделать, используя объект VBA – TextBox. По условию задачи программа должна выводить результаты на рабочую страницу. Подпрограммы расчета будут запускаться по кнопке на пользовательской форме (объект CommandButton). Итак, исходя из возможностей языка программирования, можно составить блок-схему, представленную на рисунке 1.1 НАЧАЛО 1 2 O_stoim = Potr / 100 * Zena * O_prob 3 O_stoim КОНЕЦ Рисунок 1.1 Блок-схема алгоритма 1 - Ручной ввод пользователем исходных данных - N_auto, M_auto, M_benz, O_prob, Potr, Zena ; 2 – Машинная операция расчета результата по заданной формуле; 3 – Вывод результата на экран. 2. Реализация программного модуля 2.1 Код программы Особенностью языка VBA является то, что программный модуль запускается по какому-либо событию, будь-то ввод с клавиатуры пользователем строки, нажатие на определенную кнопку клавиатуры, перемещение мыши, нажатие кнопки мыши и т.п. Разрабатываемый программный модуль будет срабатывать, когда пользователь нажимает определенную кнопку на пользовательском интерфейсе. По условию задачи результаты должны выводиться на рабочий лист, эта процедура будет запускаться по событию: CommandButton1_Click. Основой программы является пользовательская необходимые для работы форма, системы на и которой находятся «общения» с объекты, пользователем. Разработанная форма представлена на рисунке 1.2 Ввод исходных данных для пользователя осуществляется с помощью объектов VBA – TextBox. Шесть этих объектов позволяют ввести значения N_auto, M_auto, M_benz, O_prob, Potr, Zena. Расчет результатов осуществляется с помощью объекта-кнопки CommandButton, описанного выше. Остальные объекты на форме – типа «label» и носят чисто информативный характер. Также используется процедура UserForm_Initialize, которая вызывается при инициализации формы и формирует заголовки в таблице. Программный код представлен в Приложении А. Рисунок 1.2 Пользовательская форма 2.2 Описание использованных операторов Объявление переменных: Public N_auto, M_auto, M_benz, q, B, E As String Public O_prob, Potr, Zena, O_stoim As Single Каждая процедура в VBA начинается с оператора объявления процедуры и заканчивается оператором End Sub. В разрабатываемом программном модуле описано три процедуры: Private Sub CommandButton1_Click() Private Sub CommandButton2_Click() Private Sub CommandButton3_Click() Private Sub UserForm_Initialize() Ключевое слово Private используется для того, чтобы сделать процедуру частной для модуля. Основой всех вычислений в VBA является оператор, поэтому он наиболее часто встречается в программном коде, например: ActiveSheet.Cells(i, 7) = CStr(O_stoim). CStr () – строковая функция, которая преобразует число в строку; MsgBox() – выдаёт окно сообщения; CDbl() – преобразует строку в число. 3. Тестирование программного модуля Для запуска программного модуля достаточно открыть документ «КР.xls» и Excel автоматически запустит программу. Это достигается с помощью события Workbook_Open с использованием методов: Load UserForm1 UserForm1.Show Пользователь должен ввести исходные данные и запустить расчёт, используя кнопку «Подсчитать». Результат отображается на рабочий лист. Тестовый пример приведен в Приложении Б. Используя функционирования «Математическое основные критерии программного описание оценки модуля, задачи» эффективности описанные можно сделать работоспособности и оптимальности программного модуля. в пункте вывод о Заключение В контрольной работе на тему «Основы программирования на VBA: Модель объектов EXEL» был разработан и реализован программный модуль с пользовательской формой. Программный модуль обеспечивает ввод исходных данных, расчет заданной математической функции и вывод результатов на рабочий лист. В процессе работы была разработана математическая модель задачи, схема алгоритма, код программы на языке VBA, пользовательский интерфейс и проведено тестирование программного модуля. Список использованной литературы 1. Р. Петерсон. Microsoft Excel 97 в подлиннике: В 2т.: пер. с англ.СПб.:BHV-Санкт-Петербург, 1997. Том 1 – 672 с., ил. 2. У.Орвис. Visual Basic for application.-М. Бином 1995. Приложение А. Программный код Public N_auto, M_auto, M_benz, q, B, E As String Public O_prob, Potr, Zena, O_stoim As Single 'Процедура по нажатию кнопки "подсчитать" Private Sub CommandButton1_Click() N_auto = UserForm1.TextBox1 If N_auto = "" Then B = MsgBox("Введите номер автомобиля", vbCritical, "") 'Фокусирование на поле ввода UserForm1.TextBox1.SetFocus GoTo s End If M_auto = UserForm1.TextBox2 If M_auto = "" Then B = MsgBox("Введите марку автомобиля", vbCritical, "") UserForm1.TextBox2.SetFocus GoTo s End If M_benz = UserForm1.TextBox3 If M_benz = "" Then B = MsgBox("Введите марку бензина", vbCritical, "") UserForm1.TextBox3.SetFocus GoTo s End If O_prob = UserForm1.TextBox4 If O_prob = "" Then B = MsgBox("Введите общий пробег", vbCritical, "") UserForm1.TextBox4.SetFocus GoTo s End If O_prob = "" 'Сообщение об ошибке при вводе нечисловых данных On Error Resume Next O_prob = CDbl(UserForm1.TextBox4) If O_prob = "" Then B = MsgBox("Введите число!!!", vbCritical, "") UserForm1.TextBox4.SetFocus GoTo s End If Potr = UserForm1.TextBox4 If Potr = "" Then B = MsgBox("Введите потребление л/100", vbCritical, "") UserForm1.TextBox5.SetFocus GoTo s End If Potr = "" On Error Resume Next Potr = CDbl(UserForm1.TextBox5) If Potr = "" Then B = MsgBox("Введите число!!!", vbCritical, "") UserForm1.TextBox5.SetFocus GoTo s End If Zena = UserForm1.TextBox6 If Potr = "" Then B = MsgBox("Введите цену 1 л. бензина", vbCritical, "") UserForm1.TextBox6.SetFocus GoTo s End If Zena = "" On Error Resume Next Zena = CDbl(UserForm1.TextBox6) If Potr = "" Then B = MsgBox("Введите число!!!", vbCritical, "") UserForm1.TextBox6.SetFocus GoTo s End If 'Расчёт общей стоимости O_stoim = Potr / 100 * Zena * O_prob 'Поиск пустой строки i=3 While (ActiveSheet.Cells(i, 1) <> "") E = ActiveSheet.Cells(i, 1) i=i+1 E = "" Wend 'Заполнение ячеек таблицы данными If E = "" Then ActiveSheet.Cells(i, 1) = CStr(N_auto) ActiveSheet.Cells(i, 2) = CStr(M_auto) ActiveSheet.Cells(i, 3) = CStr(M_benz) ActiveSheet.Cells(i, 4) = CStr(O_prob) ActiveSheet.Cells(i, 5) = CStr(Potr) ActiveSheet.Cells(i, 6) = CStr(Zena) ActiveSheet.Cells(i, 7) = CStr(O_stoim) End If If N_auto = E Then B = MsgBox("Такой номер автомобиля есть в базе данных", vbCritical, "") UserForm1.TextBox1.SetFocus GoTo s End If B = MsgBox("Запись внесена", vbInformation, "") For rwIndex = 3 To i - 1 For colIndex = 1 To 6 Next colIndex Next rwIndex 'Сортировка по полю "Марка автомобиля" Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _ xlSortNormal 'Заполнение формы пустыми значениями UserForm1.TextBox1.Text = "" UserForm1.TextBox2.Text = "" UserForm1.TextBox3.Text = "" UserForm1.TextBox4.Text = "" UserForm1.TextBox5.Text = "" UserForm1.TextBox6.Text = "" UserForm1.TextBox1.SetFocus s: End Sub 'Процедура выхода Private Sub CommandButton2_Click() Unload Me End Sub 'Информация о разработчике Private Sub CommandButton3_Click() Load UserForm2 UserForm1.Hide UserForm2.Show End Sub 'Процедура инициализации формы Private Sub UserForm_Initialize() UserForm1.Caption = "Главная форма" UserForm1.TextBox1.Text = "" UserForm1.TextBox2.Text = "" UserForm1.TextBox3.Text = "" UserForm1.TextBox4.Text = "" UserForm1.TextBox5.Text = "" UserForm1.TextBox6.Text = "" UserForm1.TextBox1.SetFocus 'Выбор ячеек шапки Range("A1:G1").Select 'объединение ячеек With Selection.WrapText = False Selection.Orientation = 0 Selection.AddIndent = True Selection.IndentLevel = 0 Selection.ShrinkToFit = True Selection.ReadingOrder = xlContext Selection.MergeCells = True Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter End With ActiveCell.FormulaR1C1 = "Индивидуальное задание" ' установка шрифта With Selection.Font.Name = "Times New Roman" Selection.Font.Size = 10 Selection.Font.Strikethrough = False Selection.Font.Superscript = False Selection.Font.Subscript = False Selection.Font.OutlineFont = False Selection.Font.Shadow = False Selection.Font.Underline = xlUnderlineStyleNone Selection.Font.ColorIndex = xlAutomatic Selection.Font.Bold = True End With Range("A2").Select 'центровка записи ActiveCell.FormulaR1C1 = "Номер автомобиля" With Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.WrapText = True Selection.Orientation = 0 Selection.AddIndent = True Selection.IndentLevel = 0 Selection.ShrinkToFit = True Selection.ReadingOrder = xlContext Selection.MergeCells = True Selection.HorizontalAlignment = xlCenter End With Columns("A:A").ColumnWidth = 15 Rows("2:2").EntireRow.AutoFit Columns("A:A").EntireColumn.AutoFit 'установка шрифта With Selection.Font.Name = "Times New Roman" Selection.Font.Size = 10 Selection.Font.Strikethrough = False Selection.Font.Superscript = False Selection.Font.Subscript = False Selection.Font.OutlineFont = False Selection.Font.Shadow = False Selection.Font.Underline = xlUnderlineStyleNone Selection.Font.ColorIndex = xlAutomatic Selection.Font.Bold = True End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("B2").Select ActiveCell.FormulaR1C1 = "Марка автомобиля" 'центровка записи With Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.WrapText = True Selection.Orientation = 0 Selection.AddIndent = True Selection.IndentLevel = 0 Selection.ShrinkToFit = True Selection.ReadingOrder = xlContext Selection.MergeCells = False Selection.HorizontalAlignment = xlCenter End With Columns("B:B").ColumnWidth = 15 Rows("2:2").EntireRow.AutoFit Columns("B:B").EntireColumn.AutoFit 'установка шрифта With Selection.Font.Name = "Times New Roman" Selection.Font.Size = 10 Selection.Font.Strikethrough = False Selection.Font.Superscript = False Selection.Font.Subscript = False Selection.Font.OutlineFont = False Selection.Font.Shadow = False Selection.Font.Underline = xlUnderlineStyleNone Selection.Font.ColorIndex = xlAutomatic Selection.Font.Bold = True End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("C2").Select ActiveCell.FormulaR1C1 = "Марка бензина" 'центровка записи With Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.WrapText = True Selection.Orientation = 0 Selection.AddIndent = True Selection.IndentLevel = 0 Selection.ShrinkToFit = True Selection.ReadingOrder = xlContext Selection.MergeCells = False Selection.HorizontalAlignment = xlCenter End With Columns("C:C").ColumnWidth = 9 Rows("2:2").EntireRow.AutoFit Columns("C:C").EntireColumn.AutoFit 'установка шрифта With Selection.Font.Name = "Times New Roman" Selection.Font.Size = 10 Selection.Font.Strikethrough = False Selection.Font.Superscript = False Selection.Font.Subscript = False Selection.Font.OutlineFont = False Selection.Font.Shadow = False Selection.Font.Underline = xlUnderlineStyleNone Selection.Font.ColorIndex = xlAutomatic Selection.Font.Bold = True End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("D2").Select ActiveCell.FormulaR1C1 = "Общий пробег" 'центровка записи With Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.WrapText = True Selection.Orientation = 0 Selection.AddIndent = True Selection.IndentLevel = 0 Selection.ShrinkToFit = True Selection.ReadingOrder = xlContext Selection.MergeCells = False Selection.HorizontalAlignment = xlCenter End With Columns("D:D").ColumnWidth = 7 Rows("2:2").EntireRow.AutoFit Columns("D:D").EntireColumn.AutoFit 'установка шрифта With Selection.Font.Name = "Times New Roman" Selection.Font.Size = 10 Selection.Font.Strikethrough = False Selection.Font.Superscript = False Selection.Font.Subscript = False Selection.Font.OutlineFont = False Selection.Font.Shadow = False Selection.Font.Underline = xlUnderlineStyleNone Selection.Font.ColorIndex = xlAutomatic Selection.Font.Bold = True End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("E2").Select ActiveCell.FormulaR1C1 = "Потребление л/100" 'центровка записи With Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.WrapText = True Selection.Orientation = 0 Selection.AddIndent = True Selection.IndentLevel = 0 Selection.ShrinkToFit = True Selection.ReadingOrder = xlContext Selection.MergeCells = False Selection.HorizontalAlignment = xlCenter End With Columns("E:E").ColumnWidth = 15 Rows("2:2").EntireRow.AutoFit Columns("E:E").EntireColumn.AutoFit 'установка шрифта With Selection.Font.Name = "Times New Roman" Selection.Font.Size = 10 Selection.Font.Strikethrough = False Selection.Font.Superscript = False Selection.Font.Subscript = False Selection.Font.OutlineFont = False Selection.Font.Shadow = False Selection.Font.Underline = xlUnderlineStyleNone Selection.Font.ColorIndex = xlAutomatic Selection.Font.Bold = True End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) LineStyle = xlContinuous Weight = xlThin ColorIndex = xlAutomatic End With Range("F2").Select ActiveCell.FormulaR1C1 = "Цена 1 л бензина" 'центровка записи With Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.WrapText = True Selection.Orientation = 0 Selection.AddIndent = True Selection.IndentLevel = 0 Selection.ShrinkToFit = True Selection.ReadingOrder = xlContext Selection.MergeCells = False Selection.HorizontalAlignment = xlCenter End With Columns("F:F").ColumnWidth = 15 Rows("2:2").EntireRow.AutoFit Columns("F:F").EntireColumn.AutoFit 'установка шрифта With Selection.Font.Name = "Times New Roman" Selection.Font.Size = 10 Selection.Font.Strikethrough = False Selection.Font.Superscript = False Selection.Font.Subscript = False Selection.Font.OutlineFont = False Selection.Font.Shadow = False Selection.Font.Underline = xlUnderlineStyleNone Selection.Font.ColorIndex = xlAutomatic Selection.Font.Bold = True End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With Range("G2").Select ActiveCell.FormulaR1C1 = "Общая стоимость" 'центровка записи With Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.WrapText = True Selection.Orientation = 0 Selection.AddIndent = True Selection.IndentLevel = 0 Selection.ShrinkToFit = True Selection.ReadingOrder = xlContext Selection.MergeCells = False Selection.HorizontalAlignment = xlCenter End With Columns("G:G").ColumnWidth = 15 Rows("2:2").EntireRow.AutoFit Columns("G:G").EntireColumn.AutoFit 'установка шрифта With Selection.Font.Name = "Times New Roman" Selection.Font.Size = 10 Selection.Font.Strikethrough = False Selection.Font.Superscript = False Selection.Font.Subscript = False Selection.Font.OutlineFont = False Selection.Font.Shadow = False Selection.Font.Underline = xlUnderlineStyleNone Selection.Font.ColorIndex = xlAutomatic Selection.Font.Bold = True End With Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With End Sub Приложение Б. Экранная копия тестового примера