【Excel】인쇄 전의 이벤트 매크로. 인쇄 취소라든지.

5359 단어 VBAExcel

인쇄하기 전에 특정 열을 숨기기



아래의 요청을 받았습니다.

"인쇄 영역에 고객에게 표시하고 싶지 않은 열이 포함되어 있으므로 고객에게 제출용으로 인쇄할 때 자동으로 이 열을 숨기고 싶습니다."

이 기사는이 사건에 대한 메모입니다.

할 일



셀을 숨기는 것은 개인적으로 싫어서, 셀의 「표시・숨기」가 아니고, 윤곽의 기능을 사용했습니다. 인쇄 시 개요를 닫는 프로그램이 시작되도록 합니다.

1. 숨기려는 열에 윤곽선 적용
2. 인쇄할 때 윤곽선을 접는 매크로 만들기

1 개요 적용


  • 표시/숨기기를 전환하려는 열을 선택합니다



  • 2. "데이터"탭 → "그룹화"를 클릭합니다.


    3.I 열에 외곽선이 적용됨


    2 인쇄할 때 윤곽선을 접는 매크로 만들기



    인쇄 전에 발동하는 트리거로서 Workbook 객체에 BeforePrint 라는 이벤트 트리거가 있었으므로 이것을 사용합니다.

    1. Alt+F11에서 VBE를 열고 “thisWorkbook” 객체를 더블 클릭합니다.


    2.아래 그림 부분을 왼쪽을 Workbook , 오른쪽을 Beforeprint

    3. 편집 영역에 인쇄 전에 기동하는 프로그램을 기술한다
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
       'ここにプログラムを記述する。
    End Sub
    

    인쇄하기 전에 개요를 닫는 프로그램
    Private Sub Workbook_BeforePrint(Cancel As Boolean)       
        MsgBox ("印刷前にI列のアウトラインをすべて閉じます。")
        ActiveSheet.Outline.ShowLevels columnlevels:=1
    End Sub
    
    

    윤곽선 확장은 s.Outline.ShowLevels columnlevels:=1 부분의 숫자로 개폐를 지시합니다.
    모두 닫으려면 1, 모두 배포의 경우 10입니다.
    행 그룹의 경우 rowlevels를 사용합니다.

    4. 인쇄
    작업 완료했으므로 인쇄해 보니 아래 그림과 같이 프로그램에 넣어 둔 메시지 박스가 표시되었습니다. 성공입니다. .


    인쇄하기 전에 특정 셀의 값 확인



    별건입니다만 아래와 같은 의뢰도 받았습니다. 특정 셀이 비어 있으면 인쇄를 취소하라는 요청입니다.

    "인쇄하기 전에 특정 열에 값을 입력하지 않은 경우(공백이라면) 인쇄하기 전에 경고를 보내고 싶습니다."
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        If sheets1.Range("A3") = "" Then
            If MsgBox("A3セルが空っぽです。印刷を続行してもよろしいですか?", vbYesNo) = vbNo Then
                '印刷続行中止が選択された場合に、印刷を中止する。
                MsgBox ("印刷を中止します。")
                Cancel = True
            End If
        End If
    End Sub
    

    인쇄하지 않음



    사외비의 파일등으로 인쇄를 금지하고 싶은 파일도 있을까 생각합니다. 아래와 같이 강제적으로 인쇄를 취소하면 인쇄시키지 않는 것이 가능합니다.
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        MsgBox("このファイルは社外秘です。印刷はできません。")
        Cancel = True
    End Sub
    

    좋은 웹페이지 즐겨찾기