Основы офисного программирования и язык VBA

         

Событие 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 изменять нельзя.



Содержание раздела