Возникает, когда пользователь собирается поместить или вставить данные в объект. Для набора страниц и полосы вкладок VBA инициирует это событие, когда перемещает данные на элемент, а для остальных элементов - перед операциями опускания или вставки.
Набор параметров, передаваемых процедуре обработки события BeforeDropOrPaste, зависит от типа элемента управления. Они имеют такой вид:
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),
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),
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 изменять нельзя.