Содержание
Введение
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
Приложение Б. Экранная копия тестового примера