Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ И ЯЗЫК VBA - 3....doc
Скачиваний:
37
Добавлен:
17.12.2018
Размер:
1.65 Mб
Скачать

Событие BeforeDropOrPaste (Перед опусканием или вставкой)

Возникает, когда пользователь собирается поместить или вставить данные в объект. Для набора страниц и полосы вкладок VBA инициирует это событие, когда перемещает данные на элемент, а для остальных элементов - перед операциями опускания или вставки.

Набор параметров, передаваемых процедуре обработки события BeforeDropOrPaste, зависит от типа элемента управления. Они имеют такой вид:

  • для рамки (Frame) :

  • Private Sub объект_BeforeDropOrPaste (ByVal Cancel As MSForms.

  • ReturnBoolean, ctrl As Control, ByVal Action As fmAction,

  • ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single,

  • ByVal Effect As MSForms. ReturnEffect, ByVal Shift As fmShiftState),

  • для набора страниц (MultiPage) :

  • Private Sub объект_BeforeDropOrPaste (index As Long, ByVal Cancel As MSForms.

  • ReturnBoolean, ctrl As Control, ByVal Action As fmAction, ByVal Data As

  • DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.

  • ReturnEffect, ByVal Shift As fmShiftState),

  • для полосы вкладок (TabStrip) :

  • Private Sub объект_BeforeDropOrPaste (index As Long, ByVal Cancel As MSForms.

  • ReturnBoolean, ByVal Action As fmAction, ByVal Data As DataObject, ByVal X

  • As Single, ByVal Y As Single, ByVal Effect As MSForms. ReturnEffect, ByVal

  • Shift As fmShiftState),

  • для других элементов:

  • Private Sub объект_BeforeDropOrPaste (ByVal Cancel As MSForms.

  • Return-Boolean, ByVal Action As fmAction, ByVal Data As DataObject,

  • ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms. ReturnEffect,

  • ByVal Shift As fmShiftState)

Здесь имя элемента объект и параметры index, Cancel, Data, Effect, X, Y и Shift имеют тот же смысл и значение, что и в процедуре обработки события BeforeDragOver, описанной выше. Параметр Action определяет результат выполняемой операции перетаскивания, основываясь на текущем состоянии клавиатуры. Возможные значения: fmActionPaste = 2 - вставить выбранный объект на предназначенное место, fmActionDragDrop = 3 - указывает, что пользователь перетащил объект с исходного места и опустил его на место назначения.

При обработке этого события можно переустанавливать параметр Action (Action), чтобы задать то действие, которое следует выполнить.

Если Effect равно fmDropEffectCopyOrMove, в качестве значения для Action можно установить fmDropEffectNone, fmDropEffectCopy или fmDropEffectMove. Если Effect равно fmDropEffectCopy или fmDropEffectMove, можно задать значение fmDropEffectNone. Если Effect установлено как fmDropEffectNone, Action изменять нельзя.

Событие BeforeUpdate (Перед модификацией)

Возникает перед изменением данных в элементе управления. Его появление не зависит от того, связаны ли данные элемента с таблицей Excel, т. е. определено ли свойство RowSource. Событие BeforeUpdate предшествует событиям AfterUpdate и Exit для того же элемента управления и событию Enter для элемента, который следующим попадет в фокус. Вот заголовок процедуры обработки этого события:

Private Sub объект_BeforeUpdate (ByVal Cancel As MSForms. ReturnBoolean)

Здесь объект - имя объекта, которому принадлежит процедура, а Cancel - обязательный статус обработки события, его значение False означает, что оно будет обрабатываться элементом (устанавливается по умолчанию), True - что событие будет обрабатываться приложением. При этом элемент остается в фокусе, но ни AfterUpdate, ни Exit для него не инициируются.