Export UserForm Image for use in Microsoft Word

  • Thread starter Andy B via OfficeKB.com
  • Start date
A

Andy B via OfficeKB.com

I have created a number of Excel User-forms for a tool I have developed in
Microsoft Excel. I would now like to export the images of these forms into a
Microsoft Word document intended to help users in the use of the Excel tool,
and have not been unable to work-out how to do this.

I can export the forms from the 'Visual Basic Editor', which produces two
files of type *.frm and *.frx. However, I have not been able to work-out how
to import these files into Word, if this is for that matter possible.

Could anyone advise me on the best way of exporting images of Excel User-
forms into a Word document?
 
T

Tom Ogilvy

You could put a snapshot of it on a sheet, then copy that to the clipboard
and paste it into Word.

Modification of code originally posted by
"Orlando Magalhães Filho" <[email protected]>

Modified to capture just the userform (not the whole window).

Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'Public Const VK_SNAPSHOT = &H2C

Public Const VK_SNAPSHOT = 44
Public Const VK_LMENU = 164
Public Const KEYEVENTF_KEYUP = 2
Public Const KEYEVENTF_EXTENDEDKEY = 1


Sub Test()
UserForm1.Show
End Sub


In the userform module:




Private Sub CommandButton1_Click()
' keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents
keybd_event VK_LMENU, 0, _
KEYEVENTF_EXTENDEDKEY, 0 ' key down
keybd_event VK_SNAPSHOT, 0, _
KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, _
KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY _
+ KEYEVENTF_KEYUP, 0
DoEvents
Workbooks.Add
Application.Wait Now + TimeValue("00:00:01")
ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False,
DisplayAsIcon:=False
ActiveSheet.Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWorkbook.Close False
End Sub

As written, this is fired by a button on the form you are printing. You
could possibly change it to the Userform's click event and then just add it
temporarily to each form to get the picture.
 
N

Nigel

The simplest option would be to use a screen capture program, run the
userform so it displays and capture it using something like Paint Shop Pro.
AFAIK you cannot do this from within Excel.
 
M

M. Authement

Hi Andy,

I usually just write a simple UserForm1.Show macro, then use Alt-PrintScrn
to copy. Then just Paste into word.
 

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