Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_COMMAND As Long = &H111
Private Const ID_FILE_PRINT As Long = 1001
Sub ImprimirPDF()
Dim filePath As String
filePath = "ruta_del_archivo.pdf" ' Reemplaza con la ruta y nombre de tu archivo PDF
' Abre el archivo PDF
ShellExecute Me.hwnd, "Open", filePath, "", "", 1
' Espera 1 segundo para asegurarse de que el visor de PDF se haya abierto completamente
Application.Wait Now + TimeValue("0:00:01")
' Busca la ventana del visor de PDF
Dim hWndPDF As Long
hWndPDF = FindWindowEx(0&, 0&, "AcrobatSDIWindow", vbNullString)
' Envía el comando de impresión al visor de PDF
If hWndPDF <> 0 Then
SendMessage hWndPDF, WM_COMMAND, ID_FILE_PRINT, 0
End If
End Sub