Основы программирования на VBA: модель объектов Exel
Основы программирования на VBA: модель объектов Exel
Содержание Введение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.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 Приложение Б. Экранная копия тестового примера
|