나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 천사 (jus77200)

추천:  2
파일:     문의2(2).xlsm (38.9KB) 조회:  4687
제목:   매크로를 이용하여 PDF인쇄와 종이인쇄 하기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):

* 아래줄에 질문을 작성하세요 >>

  안녕하세요. 
  매크로를 이제 배우고 있는 초보입니다. 
  질문.1
  첨부의 인쇄영역에 대해 매크로를 이용하여 PDF인쇄와 종이인쇄를 
  하려고 합니다. 
  소스를 짤 능력은 부족하여 매크로 기록으로 만들었습니다. 
  만들때는 PDF 저장으로 설정했고, 종이인쇄로 각각 설정했으나,
  소스값은 동일하게 적용되어, PDF인쇄와 종이인쇄가 동일하게 적용됩니다. 
  각각 인쇄가 될수 있도록 하는 방법이 없을까요??

 질문2.
 인쇄페이지를 영역 설정후 저장하고 닫은후 다시 열면 인쇄 영역이 변경되어 있습니다. 
 첨부의 영역도 5페이지로 인쇄되도록 설정하였으나, 다시열면 6페이지까지 넘어가 있습니다. 
 인쇄할때만다 영역을 다시 5페이지로 설정하고 인쇄하고 있습니다. 
 물론 인쇄후 저장 닫기후 다시열면 인쇄영역이 다시 6페이지까지 넘어가 있습니다. 
 
[불량 게시물 신고]  
조삿갓질문 1의 방법 1
PDF로 저장하는 방법은 두 가지이지요.
1) 다른이름으로 저장에서 파일 형식을 PDF로 설정하여 저장하는 방법
2) 인쇄에서 프린터 기종을 PDF 출력기로 선택하는 방법

이 중에서 1)의 방법은 매크로 기록이 제대로 되지만,
2)의 방법은 프린터 기종 선택과정이 매크로 기록이 안되는 것 같습니다.

1)의 방법으로 매크로 기록해서, 폴더 변경하는 명령과 파일명 지정하는 부분을 적절히 수정해서 사용하면 될 것 같네요.

예를들면, Activeworkbook.Path 또는 Thisworkbook.Name 등을 참조하여 문자열 연산하는 방법이죠.

저도 실험을 통해 배우면서 알아 냈고, 지금 낚시하는 밥을 알려드렸으니까, 고기는 안드리겠습니다.

열심히 낚아 보시길^^
09-12 (08:37)
삭제 ■신고
조삿갓질문 1의 방법 2

2)의 방법으로 매크로 기록한 상태에서
주 키워드인 PrintOut 부분에 커서를 넣고 F1 키를 누르면
온라인 도움말을 볼 수 있습니다.

이 때 PrintOut 매소드의 매개변수에 대한 설명이 주욱 나오는데, 영어를 눈치껏 해석해 보시면 해결 방법이 보이기도 합니다.(참고로 제 영어 실력도 중3 수준입니다.^^ 정 안되면 해당 URL을 구글 크롬에 복사해서 자동번역해 보시든가...)

이번에는 고기를 살짝 보여드릴까요?

Sub PDF저장()
'
' PDF저장 매크로
'

'
    Sheets("인쇄서식").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        ActivePrinter:="Microsoft Print to PDF", PrToFileName:="test.pdf"
End Sub

물론 파일이름 지정하는 부분은 앞에 설명과 같이 문자열 연산을 잘 해보시기 바랍니다. 생략하면 대화상자가 나타날 거라고 도움말에 쓰여 있네요.
09-12 (08:42)
삭제 ■신고
조삿갓추신: 방법 2의 경우 다른 장소나 다른 컴퓨터에서는 해당 DPF 출력기가 설치가 안되어 있을 수 있기 때문에 방법 1이 더 안정적으로 동작할 것입니다.09-12 (08:50)
삭제 ■신고
조삿갓질문 2
제 컴에서 실행해 보니 아무 이상이 없는데요?
인쇄 명령 매개변수 중에 IgnorePrintAreas:= False 부분이 가장 수상하기는 하지만, 실제로 이 부분을 삭제하거나 그대로 놔두어도, 인쇄하고 저장했다가 다시 열어보아도 아무 문제가 없습니다.
혹시 천사님이 사용하시는 엑셀 프로그램에 이상한 추가기능이 설정되어 있거나, 자동실행 매크로가 숨어 있거나...?

일단 질문을 위해 올리신 파일(시트 데이터나 일부 기능을 삭제한 것)을 가지고 동일한 실험을 다시 해 보시고, 질문 파일은 문제가 없는데 원본 파일에서만 문제가 발견된다면,
아마도 작업 내용 중에 행 삽입/행 높이 변경 등 시트 구조가 바뀌거나 데이터 영역의 변경을 하지 않았나 의심스럽기는 합니다. 실험해 보시기 바랍니다.
09-12 (11:27)
삭제 ■신고
        
  

작성일 : 2017-09-11(21:32)
최종수정일 : 2017-09-11(21:37)