Excel VBA에서 시트를 열 때마다 매크로를 활성화하고 시트를 업데이트 할 수 있도록 시도했습니다.

Excel VBA에서 시트를 열 때마다 매크로를 활성화하고 시트를 업데이트 할 수 있도록 시도했습니다.



Excel에서 통합 문서를 열 때 보안 경고가 나타나면 매크로가 실행되지 않습니다.

이것은 보안적으로, 본래 올바른 움직임.
하지만 매크로를 움직이지 않으면 업무가 성립되지 않을 때가 있다.

Excel에서 업데이트될 때 이 변경된 데이터를 외부 데이터로 업데이트하는 매크로가 포함되었습니다.
그러나 Excel 북을 열 때 PC 환경에 따라 매크로를 활성화하지 않은 채 시트만 업데이트하고 매크로가 실행되지 않는다(버튼을 누르지만 무반응) 그대로 덮어쓰고 저장하고 끝이 많다.

이번에 추가하는 매크로는 Excel 북을 열 때 반드시 매크로를 활성화하지 않으면 데이터 업데이트 시트가 표시되지 않도록 했다.
그 때, 반드시 매크로를 유효 「콘텐츠의 유효화 버튼」을 누르도록(듯이), 경고 시트만을 표시하도록(듯이), 매크로를 유효화할 수 있으면, 업무로 사용하는 시트에 표시를 전환하도록 했다.


경고 시트 준비



컨텐츠 활성화가 되어 있지 않을 때는, Sheet1을 표시하도록, 같은 북내에 새롭게 시트를 준비한다. 여기에서는 Sheet1이라고 했다.
Sheet1 이외의 시트는 숨겨져 있습니다.

추가할 매크로



매크로가 활성화되면 경고 시트가 숨겨지고 숨겨지고 다른 시트가 표시됩니다.
Excel 통합 문서를 저장할 때,
· Sheet1만 다시 표시
· Sheet1 이외의 워크 시트 숨기기
그런 다음 Excel 통합 문서를 저장하는 매크로를 만들려고했습니다.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Call ctrlVisible(False)
End Sub

Private Sub Workbook_Open()
    Call ctrlVisible(True)
End Sub

Private Sub ctrlVisible(sheetMode As Boolean)
    If sheetMode = False Then
        Sheet1.Visible = True
    End If

    For Each objSheet In ThisWorkbook.Worksheets
        If objSheet.Name <> "Sheet1" Then
            objSheet.Visible = sheetMode
        End If
    Next

    If sheetMode = True Then
        Sheet1.Visible = False
    End If

End Sub

좋은 웹페이지 즐겨찾기