예전부터 완쵸님께서 도움을 요청했던 내용이다.
PDF를 순환하면서 지정한 인쇄권수 만큼 출력하는 것인데...
본인도 소량은 테스트로 인쇄를 하였는데 몇백장이 넘어가는 파일의 인쇄는 실제 해보지 않은 상태라 이 파일이 에러 없이 끝까지 진행될지는 미지수이다.
그래도 일단 PDF파일을 원하는 수량만큼 인쇄하는 코드를 게재하기고 하였다.
누군가에게 이 코드가 필요하길 기도한다.
본코드는 아크로뱃에서 pdf를 인쇄를 진행하였는데,
pdf 파일을 처리하는 디폴트 값으로 인쇄가 되기 때문에 본인 프로그램에 따라 TAB키 횟수를 조절하면 되며,
파일의 크기에 따라 엔터이후 딜레이 시간을 가변적으로 주면 된다.
더보기
Option Explicit
Private Declare PtrSafe 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
Public Sub PrintFile(ByVal strPathAndFilename As String)
Call ShellExecute(Application.hwnd, "open", strPathAndFilename, vbNullString, vbNullString, 0)
End Sub
Sub PrintPDF()
Dim rngX As Range: Set rngX = [a4] '= 파일명 위치
Dim Filename$, i&
Do Until rngX = ""
Filename = [a2] & rngX & ".pdf"
PrintFile (Filename)
Application.Wait (Now + TimeValue("00:00:02")) '= 2초대기
Application.SendKeys "^p", True '= 컨트럴 P -> 인쇄 단축키
Application.SendKeys "{TAB}{TAB}{TAB}{TAB}", True '= 탭키 3번
Application.SendKeys rngX(1, 3), True '= 인쇄권수
Application.Wait (Now + TimeValue("00:00:05")) '= 5초대기
Application.SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}", True
'= 탭키 11번
Application.SendKeys "{ENTER}", True '= 엔터키
Application.Wait (Now + TimeValue("00:05:00")) '= 2분대기
Set rngX = rngX.Offset(1) '= 다음파일
Loop
End Sub
'Tip' 카테고리의 다른 글
[Tip] Quick look 윈도우 사용자라면 필수!! (0) | 2022.07.13 |
---|---|
[Tip] 모듈가져오기(22.06.27 수정본) (0) | 2022.06.22 |
[Tip] 고유값으로 로또를 완성해라 (0) | 2022.05.27 |
[Tip] Url 주소에서 사진 다운로드하기 (0) | 2022.05.25 |
하자님 티스토리글이 안 열려요ㅠ.,ㅜ (0) | 2022.05.11 |
댓글