Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
I am trying to print on legal size paper, i cant set size. | Excel Discussion (Misc queries) | |||
Save as PDF not same size as Print and Print Preview in Excel | Excel Discussion (Misc queries) | |||
Zoom size doesn't equal print size | Excel Discussion (Misc queries) | |||
print view & print, in excel, different size cells | Excel Discussion (Misc queries) | |||
Userform Size | Excel Programming |