Export UserForm Image for use in Microsoft Word

  • Thread starter Thread starter Andy B via OfficeKB.com
  • Start date 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?
 
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.
 
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.
 
Hi Andy,

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