Решение найдено! Спасибо пользователю sokol92.
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
Ссылка на источник