Print UserForm A4 size
I have a userForm that is A4 in size and I have tried to use the code
below to print the Active window as my userForm is the 'Active Window' However the print outcome is 'PRINT SCREEN' with the bottom one third of my userform not printing at all. In a Button_Click event I have:- DoEvents 'Copy the Activewindow to the Clipboard keybd_event VK_MENU, 0, 0, 0 keybd_event VK_SNAPSHOT, 0, 0, 0 keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0 keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0 DoEvents 'Copy the Clipboard to the Worksheet Range(A1").select ActiveSheet.Paste DoEvents Any help TIA. SZ |
Print UserForm A4 size
Hi SZ,
You should test like that: Private Declare Function OpenClipboard& Lib "user32" (ByVal hwnd&) Private Declare Function EmptyClipboard& Lib "user32" () Private Declare Function CloseClipboard& Lib "user32" () Private Declare Sub keybd_event Lib "user32" _ (ByVal bVk As Byte, ByVal bScan As Byte _ , ByVal dwFlags&, ByVal dwExtraInfo&) Private Declare Function GetVersionExA _ Lib "kernel32" (lpVersionInformation _ As OSVERSIONINFO) As Integer Private Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type Private Const KEYEVENTF_KEYUP = &H2 Private Const VK_SNAPSHOT = &H2C Private Const VK_MENU = &H12 Private Above4 As Boolean Private Sub UserForm_Initialize() Dim OSI As OSVERSIONINFO OSI.dwOSVersionInfoSize = 148 OSI.szCSDVersion = Space$(128) Call GetVersionExA(OSI) Above4 = OSI.dwMajorVersion 4 ' your possible code ' ... End Sub ' Print button Private Sub CommandButton1_Click() ' Release button Me.Repaint OpenClipboard 0& EmptyClipboard If Above4 Then keybd_event VK_SNAPSHOT, 1, 0, 0 Else keybd_event VK_MENU, 0, 0, 0 keybd_event VK_SNAPSHOT, 0, 0, 0 keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0 keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0 End If CloseClipboard DoEvents 'Me.Hide Range("A1").Select ActiveSheet.Paste ' .... End Sub Regards, MP "SZ" a écrit dans le message de oups.com... I have a userForm that is A4 in size and I have tried to use the code below to print the Active window as my userForm is the 'Active Window' However the print outcome is 'PRINT SCREEN' with the bottom one third of my userform not printing at all. In a Button_Click event I have:- DoEvents 'Copy the Activewindow to the Clipboard keybd_event VK_MENU, 0, 0, 0 keybd_event VK_SNAPSHOT, 0, 0, 0 keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0 keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0 DoEvents 'Copy the Clipboard to the Worksheet Range(A1").select ActiveSheet.Paste DoEvents Any help TIA. SZ |
All times are GMT +1. The time now is 10:10 AM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com