понедельник, 26 февраля 2018 г.

Рисунки в пользовательских формах VBA



Свойства объекта Image.
Отладка программ.
Объект Image (рисунок)
Объект Image служит для размещения рисунка, загружаемого из графического файла.
Свойства объекта Image (рисунок)
Элемент управления Image (рисунок) создается с помощью кнопки “Рисунок”. Он используется для отображения графических файлов. В таблице перечислены некоторые свойства, используемые для управления выводом изображения. Картинку в элемент управления Image можно вставить только программным путем.
Практическая работа № 1 “Внедрение рисунка”
В этом примере рассмотрим внедрение объекта Image и присваивание этому объекту определенных свойств.
1. Создайте экранную форму.
2. Внедрите в созданную форму четыре объекта Image. Не обращайте внимание на расположение и размер внедренных первоначально объектов Image (свойства этих объектов будут установлены по умолчанию).



Рис. 1. Внедрение объектов Image в созданную форму
Но при этом постарайтесь придерживаться размеров формы и расположения пояснительных надписей к рисункам. Эти значения присвойте через окно свойств аналогично тому, как это показано в таблице.

Присваивание объектам свойств будем производить программно.
3. Используя свойства объектов, разместите изображения так, как показано на примере (см. рис. 2):
в первом случае изображение пропорционально масштабируется так, чтобы целиком заполнить область объекта;
во втором случае изображение так же целиком заполняет область объекта, но масштабирование непропорциональное;
в третьем случае изображение размещается произвольно;
в четвертом случае область объекта покрывается мозаикой из рисунков.
Измените фон у объектов с подписью “Рисунок 1” и “Рисунок 3”. Во всех четырех случаях изображение выравнивается по верхнему левому краю.

Рис. 2. Четыре примера размещения рисунка
Программа для кнопки “Свойства объекта Image”
Private Sub CommandButton1_Click()
Rem Размещение объектов от левого края формы
Image1.Left = 25
Image2.Left = 225
Image3.Left = 25
Image4.Left = 225
Rem Размещение объектов от верхнего края формы
Image1.Top = 30
Image2.Top = 30
Image3.Top = 170
Image4.Top = 170
Rem Ширина объектов
Image1.Width = 160
Image2.Width = 160
Image3.Width = 160
Image4.Width = 160
Rem Высота объектов
Image1.Height = 85
Image2.Height = 85
Image3.Height = 85
Image4.Height = 85
Rem Согласование размера рисунка и размера объекта
Image1.PictureSizeMode = 3
Image2.PictureSizeMode = 1
Image3.PictureSizeMode = 0
Image4.PictureSizeMode = 0
Rem Размножение рисунка по всей поверхности объекта
Image4.PictureTiling = True
Rem Изменение цвета фона у двух объектов
Image1.BackColor = RGB(100, 100, 100)
Image3.BackColor = RGB(100, 50, 100)
Rem Применение эффектов к объектам
Image1.SpecialEffect = 1
Image2.SpecialEffect = 2
Image3.SpecialEffect = 3
Image4.SpecialEffect = 6
End Sub
4. Создайте кнопку на листе Excel для вывода формы на экран.
5. Сохраните свою работу.
Тестирование и отладка программ
Процесс исправления ошибок называется отладкой.
Отладка программ и обработка ошибок всегда выступает как часть процесса разработки. Если бы все программировали идеально, то необходимость отладки программ и обработки ошибок отпала бы сама собой: каждая создаваемая программа выполняла бы все требуемые действия с первого раза. Как правило, такого не бывает, поэтому в большинстве систем разработки имеются инструменты, с помощью которых можно решить проблемы, возникающие в процессе программирования. В VBA также есть средства, которые позволяют либо исключить ошибки при разработке, либо задать отклик на ошибки при выполнении программ.
Отладка программ и обработка ошибок — это не одно и то же, но они тесно связаны друг с другом.
Отладка программ — это проверка и внесение исправлений в программу при ее разработке. Отладка позволяет идентифицировать ошибки, допущенные при программировании. Например, синтаксические ошибки в тексте программы, именах функций и переменных или логические ошибки.
Обработка ошибок — это задание реакции на ошибки, которые возникают во время выполнения программы. Причиной ошибок могут быть как ошибки в самой программе, так и другие обстоятельства, находящиеся вне сферы влияния программиста. Например, отсутствие файлов, к которым происходит программное обращение, отказ аппаратных средств или неправильные действия пользователя.
Невозможно предотвратить возникновение всех ошибок, но следует стремиться к уменьшению их числа. В маленькой программе довольно просто выявить ошибку. Однако по мере увеличения размеров и сложности программ находить их становится все труднее. В таких случаях необходимо пользоваться средствами отладки VBA.
Среда разработки программ на VBA предоставляет пользователю современные удобные средства отладки программы.
Предположим, что уже написан код вашей процедуры. Следующий этап в создании любой процедуры — тестирование написанного кода.
Тестирование — это процесс выполнения процедуры и исследование всех аспектов ее работы.
Цель тестирования — проверить правильность результатов выполнения процедуры и ее реакцию на разнообразные действия пользователя.
Если во время работы процедуры получены неверные результаты вычислений, непредвиденная реакция на те или иные действия пользователя, либо вообще произошла остановка выполнения, то это говорит о том, что в тексте программы имеются ошибки.
Все возможные ошибки можно разделить на три вида:
1. Ошибки компиляции. Возникают, если VBA не может интерпретировать введенный текст, например, при использовании неправильного синтаксиса инструкции или задании неверного имени метода или свойства. Некоторые ошибки компиляции обнаруживаются при вводе инструкции, а другие — только перед выполнением программы. Данный тип ошибок обычно просто идентифицировать и исправить, поскольку VBA выявляет их автоматически, а сами ошибки очевидны.
2. Ошибки выполнения. Возникают при выполнении программы, т.е. после успешной компиляции. Причиной таких ошибок может быть отсутствие данных или неправильная информация (например, данные, введенные пользователем). Ошибки выполнения, как и ошибки компиляции, легко идентифицируются VBA. При этом выводится инструкция, при выполнении которой произошла ошибка. Ошибки данного типа тяжелее устранить: может понадобиться вывести значения переменных или свойств, а также другие данные, которые влияют на успешное выполнение программы.
3. Логические ошибки труднее всего заметить и устранить. Логические ошибки не приводят к прекращению компиляции или выполнения. Однако они являются причиной того, что программа не выдает желаемых результатов. Ошибки данного типа идентифицируются путем тщательной проверки с помощью средств отладки VBA.
Компиляция — это процесс преобразования программы, написанной на алгоритмическом языке, в язык машинных кодов. Если в программе есть
синтаксические ошибки, то процесс компиляции прекращается, строки с ошибкой закрашиваются желтым цветом и выдается соответствующее сообщение. Для продолжения выполнения программы необходимо исправить ошибку и нажать кнопку “Continue”► на стандартной панели редактора VBA. Или прервать выполнение программы, нажав на кнопку “Reset” , исправить ошибку в программе, а затем заново запустить ее.
При обнаружении ошибки компилятор выдает сообщение с указанием номера ошибки. В этом случае полезно, воспользовавшись справочной системой редактора VBA, определить характер ошибки и исправить ее.

Рис. 3. Редактор Visual Basic немедленно реагирует на синтаксические ошибки
Чтобы исследовать процесс отладки на практике, нам необходима какая-нибудь программа, содержащая ошибку. В Практической работе № 5–2 “Отладка программ” рассматривается устранение ошибки при написании процедуры для объекта Image.

Практическая работа №2 “Отладка программ”
1. Откройте новую рабочую книгу.
2. Подготовьте экранную форму, представленную на рис. 4. Внедрите в созданную форму с помощью панели Toolbox объект Image Описание: http://inf.1september.ru/2006/05/13-0.gif. Рисунок лучше внедрить небольшой.
ВНИМАНИЕ!!! Правильно описывайте путь к графическим файлам, которые внедряются программно в форму.

Рис. 4. Форма для выполнения задания
3. Создайте новую процедуру для кнопки “Измени надпись”.
4. Введите текст процедуры. В тексте намеренно сделаем ошибку в свойстве Size (напишем Sie):
Private Sub CommandButton1_Click()
Label1.Caption = "
Флаг России"
UserForm2.Image1.Picture = LoadPicture("C:\FlgRUS.gif")
Label1.Font.Sie = 14
End Sub
5. Вернемся в редакторе к созданной форме и выведем форму для работы, нажав клавишу .
6. После появления формы на экране нажмем на кнопку “Измени надпись”. Так как в программе заложена ошибка, появится окно сообщения об ошибке (рис. 5) и мы попадем в редактор VBA.

Рис. 5. Окно редактирования кода с окном сообщения об ошибке
7. Нажмите на кнопку “Debug” (отладка), и отладчик укажет, в какой строке у вас ошибка (рис. 6).

Рис. 6. Окно редактирования кода с указанной ошибкой
8. Исправьте ошибку и нажмите на стандартной панели инструментов на кнопку Описание: http://inf.1september.ru/2006/05/16-0.gif(“Продолжение”).
Тексты программ для кнопок CommandButton2, CommandButton3, CommandButton4, CommandButton5 представлены в таблице:
Объект
Программа
CommandButton2 (сдвинь рисунок вправо)
Private Sub CommandButton2_Click() Image1.PictureAlignment = 4 End Sub
CommandButton4 (измени цвет фона и формы)
Private Sub CommandButton4_Click()
Image1.BackColor = &HFF80FF
UserForm2.BackColor = RGB(64, 0, 0)
End Sub
CommandButton3 (мозаика)
Private Sub CommandButton3_Click()
Image1.PictureTiling = True
End Sub
CommandButton5 (измени рисунок флага и надпись)
Private Sub CommandButton5_Click()
Label1.Caption = "Флаг Англии"
Label1.Font.Size = 14
Label1.Font.Name = "Arial Black"
UserForm2.Image1.Picture =
LoadPicture("C:\FlgEng.gif")
End Sub
9. После щелчка по кнопке “Измени надпись” форма приобретет вид, представленный на рис. 7.

Рис. 7. Работа кнопки “Измени надпись”
10. После щелчка по кнопке “Сдвинь рисунок вправо” форма приобретет вид, представленный на рис. 8.

Рис. 8. Работа кнопки “Сдвинь рисунок вправо”
11. После щелчка по кнопке “Мозаика” форма приобретет вид, представленный на рис. 9.
Рис. 9. Работа кнопки “Мозаика”

12. После щелчка по кнопке “Смена флага и надписи” форма приобретет вид, представленный на рис. 10.

Рис. 10. Работа кнопки “Смена флага и надписи”
Можно предусмотреть разные комбинации рисунков и надписей.
13. Сохраните свою работу.

Практическая работа № 3  “Работа с рисунком”

1. В редакторе MS Paint создайте рисунки. Например, такие, как показано на рис.11.

Рис. 11. Примеры рисунков
2. Сохраните рисунки в своей папке или на диске C:\цв1.bmp, C:\цв2.bmp, C:\цв3.bmp.
3. В Excel создайте экранную форму и назовите ее “Цветок”. Внедрите в созданную форму рисунок и четыре кнопки. Кнопки назовите “Сцена1”, “Сцена2”, “Сцена3”, “ВЫХОД”. Используя свойства объектов, отформатируйте созданную форму. Форма может иметь вид, представленный на рис. 12.

Рис. 12. Примерный вид формы
4. Тексты программ для кнопок представлены в таблице:
Объект
Программа
CommandButton1
Вставить рисунок
C:\цв1.bmp
Private Sub CommandButton1_Click()
UserForm1.Image1.Picture =
LoadPicture("C:\цв1.bmp")
End Sub
CommandButton2
Вставить рисунок
C:\цв2.bmp
Private Sub CommandButton2_Click()
UserForm1.Image1.Picture =
LoadPicture("C:\цв2.bmp")
End Sub
CommandButton3
Вставить рисунок
C:\цв3.bmp
Private Sub CommandButton3_Click()
UserForm1.Image1.Picture =
LoadPicture("C:\цв3.bmp")
End Sub
CommandButton4
Закрыть форму
CommandButton4 Private Sub CommandButton4_Click()
UserForm1.Hide
End Sub
Обратите внимание на описание пути к файлам, которые внедряются программно в форму.
5. Запишите процедуру вызова данной формы и тоже назовите ее “Цветок”:
Public Sub Цветок()
UserForm1.Show
End Sub
6. На поле листа Excel вставьте рисунок и назначьте ему макрос “Цветок”. Получится кнопка-рисунок (см. рис. 13).

Рис. 13. Назначение макроса для кнопки-рисунка
7. Проверьте работоспособность кнопки-рисунка. При нажатии на нее должна появляться форма “Цветок”. При нажатии на кнопки: “Сцена1”, “Сцена2” и “Сцена3” рисунок в форме меняется (см. рис. 14). При нажатии на кнопку “ВЫХОД” форма скрывается с листа.

Рис. 14. Изменение рисунка в форме
8. Сохраните вашу работу.

Литература
1.      Газета "Информатика" Издательского дома "Первое сентября" № 5 2006 г.

Комментариев нет :

Отправить комментарий

Номер страницы