Copy & paste image from UserForm (repost)

P

Paul Martin

Hi all


Is there an easy way to enable cut & paste from an image on a UserForm
(to another app, say Word). I have an Image control that displays a
chart GIF. I would like the user to be able to right-click and cut &
paste in the usual Windows manner. Are there some APIs that enable
this?

I have received a post that enables copy to Office Clipboard, but I
want to copy to the Windows clipboard.

Thanks in advance


Paul Martin
Melbourne, Australia
 
M

Michel Pierron

Yes Paul, you are right.
In what the first procedure doesn't give you satisfaction?
If it is the presence of the Office Clipboard, you can mask it afterwards
immediately.

Option Explicit
Private Declare Function _
OpenClipboard& Lib "user32" (ByVal hwnd&)
Private Declare Function _
EmptyClipboard& Lib "user32" ()
Private Declare Function _
SetClipboardData& Lib "user32" _
(ByVal wFormat&, ByVal hMem&)
Private Declare Function _
CloseClipboard& Lib "user32" ()

Private Sub CommandButton1_Click()
On Error Resume Next
Application.CommandBars.FindControl(1, 809).Execute
Dim hCopy&
OpenClipboard 0&: EmptyClipboard
hCopy = SetClipboardData(2, Me.Image1.Picture.handle)
CloseClipboard
Application.CommandBars.FindControl(1, 5746).Execute
' Test procedure
If hCopy Then PasteInWord
End Sub

Sub PasteInWord()
With CreateObject("Word.Application")
..Visible = True
..Documents.Add
..Selection.Paste
End With
End Sub

Regards,
MP
 
P

Paul Martin

Hi Michel

Thanks for your persistence in offering ideas, but it's not the
solution I'm after.

Regards

Paul Martin
Melbourne, Australia
 
P

Paul Martin

Michel

I have tried your code and it works fine in Excel 2003 but fails in
Excel 2000, at Application.CommandBars.FindControl.

Any suggestions?

Private Const OFFICE_CLIPBOARD = 809

Private Sub CopyImageToOfficeClipboard()
Dim hCopy As Long

On Error GoTo ExitSub
Application.CommandBars.FindControl(, OFFICE_CLIPBOARD).Execute
OpenClipboard 0&
EmptyClipboard
hCopy = SetClipboardData(2, imgLargeChart.Picture.Handle)
CloseClipboard

ExitSub:

End Sub



Regards

Paul Martin
Melbourne, Australia
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top