안녕하세요. yyDandy입니다. 사무실 칼퇴보장 알잘딱깔센 엑셀 활용법!
개요
이번에는 VBA 기능을 이용하여 원하는 시트만 인쇄하거나 PDF로 만드는 방법에 대해 알려드릴게요. VBA 기능을 이용하는 가장 큰 이유는 아무래도 자동화를 통한 능률향상입니다. 하지만 일부 기능을 만들면서 사실 수동적으로 하는 게 더 빠르게 끝나는 경우가 있어요. 예를 들어, 파이썬에서 Hello World 10번을 치는데 초보는 For i in 10 뭐 이런걸 한다면.. 사실 진짜 고수는 printf를 10번 쓰거든요. 그래서 언제나 기능을 쓰실 때는 손익을 따져보는 게 좋아요. 그래도 VBA 기능을 매 번 코딩 하는 것이 아니라 해놓고 여러 번 쓰다보면 결국 이득이니까요! 이번 기능도 꼭 필요하신 분이 잘 쓰셨으면 좋겠네요!
이 엑셀은 제가 실제로 예산과 계획을 세우는 엑셀인데, 여기서 심심하면 VBA를 위해 시트를 추가로 만들어놨어요. 그런데 아무래도 1, 2 시트는 보여드릴 수 없으니 3~6의 시트만 PDF로 저장하고 싶은데 어떻게 하면 편할까요? 각 시트마다 눌러서 다른이름으로 저장을 하고 PDF 형식으로 해도 되겠지만, 이번에는 VBA 기능을 이용하여 능률을 올려볼게요.
코드
이번에는 2가지 스타일이 있는데요. 위는 파일 1개로 출력하는 방식이에요. 3, 4, 5시트 마다 파일이 1개씩 총 3개의 파일이 생성되고, 각 시트마다 다른 이름으로 저장할지 안내가 나와요. 따라서 시트가 20개라면 20번의 응답을 해줘야 한답니다. 그래도 각 시트별로 따로 저장이 필요하신 경우에는 위 코드를 쓰면 돼요. 아래의 경우에는 3, 4, 5 시트가 1개의 PDF 파일로 인쇄되도록 할 수 있어요. 아래는 배열의 개념을 이용한 것인데 편하신 방법으로 이용하시면 되겠습니다!
코드 복사
Sub 파일1개로출력()
Dim arrSht
Dim i As Long
arrSht = Array(1, 3, 5)
For i = 0 To UBound(arrSht)
Sheets(arrSht(i)).PrintOut
Next i
End Sub
Sub 각파일로출력()
Dim arrSht
arrSht = Array(1, 3, 5)
Sheets(arrSht).PrintOut
End Sub
'지난 게시글' 카테고리의 다른 글
우크라이나, 러시아 드론 공습 개시 … 현재 전쟁 상황은? (2) | 2024.01.21 |
---|---|
[이슈] 민사소송으로 떼인 돈 돌려받기, 감동실화(?) 이야기 (0) | 2024.01.21 |
[엑셀] VBA 특정 행의 이름이 바뀔때마다 페이지 나눠 인쇄하기 (0) | 2024.01.11 |
[정책브리핑] 2024년 소위 월급 1,892,400원 공무원 보수규정 개정, 군인 얼마받나? (1) | 2024.01.08 |
[쇼핑] 새내기 노트북 추천, LG Gram 2024 디자인과 가격 완성! 구매 혜택 최대로 받는 방법은? [내돈내산] (3) | 2024.01.08 |