Основы программирования на VBA модель объектов Exel

Содержание



	Введение

	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





O_stoim

НАЧАЛО

КОНЕЦ

O_stoim = Potr / 100 * Zena * O_prob

2



1

3



Рисунок 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, пользовательский интерфейс и проведено тестирование программного модуля.




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



	Р. Петерсон. Microsoft Excel 97 в подлиннике: В 2т.: пер. с англ.-СПб.:BHV-Санкт-Петербург, 1997. Том 1 – 672 с., ил.

	У.Орвис. 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




Приложение Б. Экранная копия тестового примера