Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2015, 01:54   #1
yurkagagarin
Пользователь
 
Регистрация: 16.01.2015
Сообщений: 16
Восклицание Печать формы

Использую команду PrintForm для печати формы. Но с этой командой нет возможности управлять печатью (задавать принтер, положение листа и так далее) и получать предварительный просмотр перед печатью.
Каким образом можно это сделать?
yurkagagarin вне форума Ответить с цитированием
Старый 12.02.2015, 02:18   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Каким образом можно это сделать?
думаю, никак

задать принтер можно перед печатью, отдельным макросом
здесь есть пример кода: http://excelvba.ru/code/printers
(см. последний макрос в статье)

насчет положения листа, — не знаю как, — но, наверняка, тоже как-то можно поменять

а вот с предварительным просмотром, — никак не получится
(разве что выводить на печать на виртуальный ПДФ принтер, там просматривать, и оттуда уже печатать на реальный принтер)
EducatedFool вне форума Ответить с цитированием
Старый 13.02.2015, 16:31   #3
yurkagagarin
Пользователь
 
Регистрация: 16.01.2015
Сообщений: 16
По умолчанию

Вот нашёл решение по поводу положения листа.
Код:
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
 
Private Const KEYEVENTF_KEYUP = &H2
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const VK_SNAPSHOT = &H2C
Private Const VK_MENU = &H12
Private Const VK_LMENU = &HA4
 
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim wshTemp As Worksheet
    DoEvents
 
    ' Simulate pressing ALT+Printscreen to copy the form window (=picture) to
    ' the clipboard
    keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
    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
 
    ' Add a worksheet named Temp
    ThisWorkbook.Worksheets.Add
    ActiveSheet.Name = "Temp"
    Set wshTemp = ThisWorkbook.Worksheets("Temp")
 
    ' Paste the picture, set print orientation to landscape en print it
    With wshTemp
     .Paste
     .PageSetup.Orientation = xlLandscape
     .PrintOut
    End With
 
    ' Delete the worksheet Temp and suppress the not-saved Warning.
    Application.DisplayAlerts = False
    ThisWorkbook.Worksheets("Temp").Delete
    Application.DisplayAlerts = True
End Sub
Взял отсюда.
yurkagagarin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать формы. Slimav41 Общие вопросы Delphi 2 20.04.2011 08:55
Печать формы Yaga Общие вопросы Delphi 3 25.06.2009 16:40
Печать всей формы GINA Общие вопросы Delphi 11 11.01.2009 21:11
печать формы vldand Microsoft Office Access 1 19.09.2008 11:12
Печать формы ♠STO♠ Общие вопросы Delphi 6 30.08.2007 16:03