Офисное программирование
Офисное программирование читать книгу онлайн
Фризен Ирина Григорьевна – кандидат педагогических наук, преподаватель информационных технологий, автор многочисленных работ в сфере информационных технологий.
Настоящее учебное пособие написано в соответствии с государственной программой изучения дисциплины Офисное программирование для средних специальных учебных заведений по специальности 230103 «Автоматизированные системы обработки информации и управления».
В пособии дается достаточный материал для проведения практических занятий по дисциплине, а также основной теоретический материал, необходимый при изучении того или иного вопроса. На основе предлагаемого материала можно строить проведение различных видов занятий.
Учебное пособие ставит перед собой цель помочь студентам изучить данную дисциплину в полном объеме, отвечающем требованиям государственного стандарта по дисциплине.
Предназначается для преподавателей и студентов средних специальных учебных заведений, а также может быть использовано студентами высших учебных заведений, изучающих данную дисциплину.
В учебном пособии рассматривается более 60 задач, сопровождаемых 130 рисунками и подробными объяснениями.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Пример 29. Создать форму, имеющую два элемента управления: список и текстовое поле. При помощи мыши из списка перетаскивают в текстовое поле необходимый элемент, выделенный в списке (рис. 59, 60, 61).
Программно заполняются элементы списка, который содержит наименования месяцев года. Программа, используя технологию DragAndDrop объекта DataObject, позволяет перетащить выбранный элемент из списка в текстовое поле выбора (рис. 60). При неправильном действии, т. е. перетаскивании не в текстовое поле, происходит вызов предупреждающего сообщения (рис. 61).

Рис. 59. Форма примера 29 в режиме конструктора

Рис. 60. Форма примера 29 в рабочем режиме

Рис. 61. Окно предупреждения о неправильно выполненной операции
Когда пользователь захватывает выбранный им элемент списка, то возникает некоторое событие. В нашем примере это событие MouseMove, обработчик которого и будет вызывать метод StartDrag объекта DataObject, который хранит значение перетаскиваемого элемента. Синтаксис метода:
Function StartDrag([Effect As fmDropEffect]) As
fmDropEffect
Эта функция обычно вызывается в операторе присваивания вида:
ResultEffect=объект. StartDrag([effect as fmDropEffect])
Необязательный параметр Effect и результат выполнения функции принадлежат перечислению fmDropEffect. Константы, входящие в это перечисление, имеют следующие значения:
• fmDropEffectNone = 0 – не копировать и не передвигать опущенный исходный элемент на место назначения;
• fmDropEffectCopy =1 – копировать опущенный исходный элемент на место назначения;
• fmDropEffectMove = 2 – передвинуть опущенный исходный элемент на место назначения;
• fmDropEffectCopyOrMove = 3 – скопировать или передвинуть опущенный исходный элемент на место назначения.
Параметр Effect задает цель операции и имеет по умолчанию значение 1 (fmDropEffectCopy). Обычно он опускается, поскольку значение по умолчанию задает наиболее вероятную цель операции. Значение, возвращаемое методом StartDrag, определяет результат выполнения операции. Его можно использовать для анализа того, что же произошло в результате перетаскивания на самом деле. Между запуском метода StartDrag в правой части оператора присваивания и присваиванием результата левой части переменной ResultEffect в процессе перемещения объекта происходит много событий. Работают обработчики этих событий, и результат говорит о том, как закончился этот процесс.
Технология выполнения
1. Активизируйте приложение Word и сохраните документ.
2. Перейдите в редактор VBA и создайте форму (рис. 59).
3. Создайте обработчик события Initialize для диалогового окна, обеспечивающего инициализацию начального состояния:
Private Sub UserForm_Initialize()
With Me.ListBox1
AddItem «январь»
AddItem «февраль»
AddItem «март»
AddItem «апрель»
AddItem «май»
AddItem «июнь»
AddItem «июль»
AddItem «август»
AddItem «сентябрь»
AddItem «октябрь»
AddItem «ноябрь»
AddItem «декабрь»
End With
End Sub
4. В результате инициализируется список «Месяц года», имеющий имя ListBox1. Готовясь перетащить этот элемент в другое место, пользователь выбирает элемент этого списка. Затем он нажимает левую клавишу мыши, и у списка возникает событие MouseMove, обработчик которого имеет много параметров. Приведем текст этого обработчика:
Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim MyDataObject As DataObject
Dim Msg As String
Msg = «Видимо, Вы уронили месяц при перетаскивании. Повторите операцию!»
If Button = 1 Then
Debug.Print «MouseMove»
Set MyDataObject = New DataObject
Dim Effect As Integer
MyDataObject.SetText ListBox1.Value
Effect = MyDataObject.StartDrag(fmDropEffectCopy)
If Effect = 0 Then MsgBox (Msg)
Debug.Print "Effect = ", Effect
End If
End Sub
5. Откомпилируйте программу и запустите форму на выполнение.
Дополнительные элементы управления
В VBA, кроме перечисленных стандартных элементов управления, имеется ряд дополнительных. Дополнительные элементы управления являются самостоятельными объектами, обладающими как общими для всех элементов управления свойствами и методами, так и присущими только им свойствами и методами. Для добавления дополнительных элементов управления на панель элементов необходимо:
1) выбрать команду Сервис + Дополнительные элементы (Tools + Additional Controls);
2) в появившемся на экране окне Дополнительные элементы (Additional Controls) (рис. 62) в списке Доступные элементы (Available Controls) установить флажок напротив добавляемого элемента;
3) нажать кнопку ОК.
Удаление ненужного элемента управления из панели элементов происходит аналогично добавлению, только флажок снимают.

Рис. 62. Окно добавления дополнительных элементов
Среди дополнительных элементов управления очень полезным является элемент управления Calendar (календарь) (рис. 63). Этот объект представляет средство для организации удобного интерфейса по вводу дат. Элемент управления конструируется в форме с помощью кнопки Календарь (Calendar).

Рис. 63. Элемент управления calendar, расположенный на форме
Перечислим основные свойства элемента управления Calendar (табл. 14).
Таблица 14


Перечислим основные методы элемента управления Calendar (табл. 15).
Таблица 15

В качестве примера использования календаря приведем следующую процедуру, которая считывает из календаря выбранную дату и вводит ее в ячейку рабочего листа:
Private Sub Calendar1_Click()
Cells(1, 1).Value = Calendar1.Value
End Sub
