Save the contents of the clipboard, call Clipboard.Clear, do the icons, restore the clipboard contents. 'Code sample by Ken Slovak Private varClip As Variant Private lngFormat As Long Public Sub GetClipboard() On Error Resume Next If Clipboard.GetFormat(vbCFRTF) Then varClip = Clipboard.GetText(vbCFRTF) lngFormat = vbCFRTF ElseIf Clipboard.GetFormat(vbCFText) Then varClip = Clipboard.GetText(vbCFText) lngFormat = vbCFText ElseIf Clipboard.GetFormat(vbCFBitmap) Then frmIcon.Picture1 = Clipboard.GetData(vbCFBitmap) lngFormat = vbCFBitmap ElseIf Clipboard.GetFormat(vbCFDIB) Then frmIcon.Picture1 = Clipboard.GetData(vbCFDIB) lngFormat = vbCFDIB ElseIf Clipboard.GetFormat(vbCFEMetafile) Then frmIcon.Picture1 = Clipboard.GetData(vbCFEMetafile) lngFormat = vbCFEMetafile ElseIf Clipboard.GetFormat(vbCFFiles) Then varClip = Clipboard.GetData(vbCFFiles) lngFormat = vbCFFiles ElseIf Clipboard.GetFormat(vbCFLink) Then varClip = Clipboard.GetData(vbCFLink) lngFormat = vbCFLink ElseIf Clipboard.GetFormat(vbCFMetafile) Then frmIcon.Picture1 = Clipboard.GetData(vbCFMetafile) lngFormat = vbCFMetafile ElseIf Clipboard.GetFormat(vbCFPalette) Then frmIcon.Picture1 = Clipboard.GetData(vbCFPalette) lngFormat = vbCFPalette Else varClip = Null lngFormat = 0 End If Err.Clear End Sub Public Sub RestoreClipboard() On Error Resume Next If (lngFormat) Then Select Case lngFormat Case vbCFText Clipboard.SetText varClip, vbCFText Case vbCFRTF Clipboard.SetText varClip, vbCFRTF Case vbCFBitmap Clipboard.SetData frmIcon.Picture1, vbCFBitmap Case vbCFDIB Clipboard.SetData frmIcon.Picture1, vbCFDIB Case vbCFEMetafile Clipboard.SetData frmIcon.Picture1, vbCFEMetafile Case vbCFFiles Clipboard.SetData varClip, vbCFFiles Case vbCFLink Clipboard.SetData varClip, vbCFLink Case vbCFMetafile Clipboard.SetData frmIcon.Picture1, vbCFMetafile Case vbCFPalette Clipboard.SetData frmIcon.Picture1, vbCFPalette Case Else End Select End If Err.Clear End Sub