I have done drag and drop differently in the past but this will now be my new go to script for all my projects in the future. Check it out for yourself. '//////////////////////////////////////////////////////////////////////This is the code Option Explicit Private Const SM_SCREENX = 1 Private Const SM_SCREENY = 0 Private Const msgCancel = "." Private Const msgNoXlInstance = "." Private Const sigProc = "Drag & Drop" Private Const VK_SHIFT = &H10 Private Const VK_CTRL = &H11 Private Const VK_ALT = &H12 Public Type PointAPI X As Long Y As Long End Type Public Type RECT lLeft As Long lTop As Long lRight As Long lBottom As Long End Type Public Type SquareEnd X As Long Y As Long End Type #If VBA7 Then Public Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As LongPtr) As Integer Public Declare PtrSafe Function WindowFrom