Задание 4. 2. Разработка бланка заказа

Теперь, после того как мы познакомились с простыми примерами использования VBA, пора перейти к более сложной задаче. Мы должны разработать удобный бланк заказа для обслуживания покупателей в компьютерном салоне. Ваша задача подобрать необходимую конфигурацию компьютера из возможных вариантов по прайсу. Для упрощения ситуации будем считать, что комплектация компьютера состоит максимум из 3 компонентов: системного блока, монитора и принтера. При этом различных системных блоков, мониторов и принтеров много. Эта номенклатура отражается на одном из листов книги – лист с названием Прайс. Вариант этого листа (не в полном объеме) представлен на рис. 4.1. Заметим, что это второй рабочий лист в последовательности листов книги (для того, чтобы последующие строки программы работали без изменений, необходимо сделать так же).

 

 

Рис.4.1.

Cтолбцы А и В содержат соответственно описание системного блока и его стоимость. Следующие два столбца – название принтера со стоимостью, и далее монитор с ценой. Наша задача – обеспечить на другом рабочем листе (на первом) удобный электронный бланк заказа с использованием информации из прайса. Вид этого бланка представлен на рис. 4.2.

 

Рис. 4.2.

 

Разберем теперь технические действия на листе 1 (рис. 4.2). Расширим столбцы A и B, а затем в ячейку В2 введем текст - «Бланк заказа». Увеличим шрифт этого текста и далее разместим на рабочем листе элемент надпись (Label). Мы ранее не рассматривали элемент управления надпись ( Label ), но он достаточно прост и его роль заключается в создании поясняющего текста к какому-либо другому объекту. На рис. 4.3 показан элемент Надпись в Office 2007.

Поменяйте значения свойств элемента Надпись следующим образом: свойство Caption установим - Заказ №, а свойство BackColor сделайте серым.

 

Рис. 4.3.

 

Далее разместите на листе текстовое окно (TextBox) для отображения номера заказа. Имя (свойство Name) оставляем TextBox 1. Установите серый фон текстового окна (с помощью свойства BackColor). Далее установите для свойства AutoSize значение True. В этом случае ширина текстового поля будет автоматически увеличиваться при вводе символов. Теперь заполните текстом (как показано на рис. 4.2) содержимое ячеек A 5, B 5, C 5 , A 7, A 8 , A 9 , A 12. После этого уберите сетку с экрана (меню Сервис, раздел Параметры и далее следует убрать отметку с отображения сетки).

В Office 2007 сетка убирается на вкладке «Вид», подложка выбирается на вкладке «Разметка страницы». Для прямоугольного диапазона A 5 – C 14 установите внешние и внутренние границы. Установите любую светлую заливку для рассматриваемого диапазона и выберите подложку для листа. Подложка выбирается с помощью команды Формат – Лист – Подложка (Office 2003).

Разместите три элемента управления – Поле со списком. Имена этим спискам дайте Spisok 1, Spisok 2 и Spisok 3.

Теперь мы подошли к написанию программного кода. Для этого перейдите в редактор VBA . Наша задача заключается в том, чтобы при открытии книги списки автоматически заполнялись содержимым листа – Прайс.

Для заполнения списков будем использовать процедуру Workbook _ Open (), которая автоматически выполняется при открытии книги. Эта процедура выполняется над объектом Workbook (текущая рабочая книга). На рис. 4.4 показано окно редактора кода с заголовком данной процедуры. В том случае, если Вы не видите в левой части редактора окна Проекта и объекта Workbook, нажмите на панели инструментов кнопку «Project Explorer» (выделено рамкой).

 

Рис. 4.4.

 

На рисунке 4.5 показан программный код для заполнения первого списка. Далее приводится объяснение каждой строки данной процедуры.

 

 

Рис. 4.5.

 

Строки после апострофа – это комментарии для Вас. Не вводите их в текст программы.

Private Sub Workbook _ Open ( )

‘Worksheets(1) – первый лист нашей книги, Spisok1 – первый список,

‘Clear – метод, заключающийся в очистке списка.