Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
20.04.2024, 19:39:24

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
33 242 Сообщений в 5 457 Тем от 6 758 Пользователей
Последний пользователь: Сергей2662
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Печать UserForm полностью
Страниц: [1]   Вниз
Печать
Автор Тема: Печать UserForm полностью  (Прочитано 2666 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Muramur
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« : 29.05.2019, 18:57:41 »

Всем привет, и заранее спасибо.
В общем то проблема наверное известная, но так и не нашел решения. Как распечатать UserForm полностью?
Пробовал через скриншот по этой ссылке https://www.mrexcel.com/forum/excel-questions/44041-print-screen-solved.html#post203844, но у меня не работает:
Код: (vb)
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long

Указанные процедуры не удается найти.
Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #1 : 29.05.2019, 20:06:33 »

Точно, проблема известная - посетители не читают правила форумов!
Дубль темы
Записан
Muramur
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« Ответ #2 : 29.05.2019, 20:14:27 »


)))) Поторопился, очень нужно решение...
« Последнее редактирование: 29.05.2019, 22:34:40 от vikttur » Записан
Muramur
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 4


Просмотр профиля E-mail
« Ответ #3 : 30.05.2019, 21:13:22 »

Решение найдено! Спасибо пользователю sokol92.
Код: (vb)
Option Explicit
#If VBA7 Then
Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As LongPtr)
#Else
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
    ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#End If
    
Private Const VK_SNAPSHOT = 44
Private Const VK_LMENU = 164
Private Const KEYEVENTF_KEYUP = 2
Private Const KEYEVENTF_EXTENDEDKEY = 1
 
Sub FormPrint()
    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
    DoEvents
    
    Workbooks.Add               ' открываем новую книгу
    ActiveSheet.Paste           ' вставляем содержание буфера обмена
    With ActiveSheet.PageSetup  ' меняем параметры страницы
     .Orientation = xlLandscape
     .Zoom = False
     .FitToPagesWide = 1        ' 1 страница по ширине и высоте
     .FitToPagesTall = 1
     .LeftMargin = 0
     .RightMargin = 0
    End With
    
    ActiveSheet.PrintOut        ' печать
    ActiveWorkbook.Close False  ' закрываем книгу
End Sub


Ссылка на источник
« Последнее редактирование: 30.05.2019, 21:14:57 от Muramur » Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru