【Excel VBA】 기동시에 실행하는 매크로가 우울한 북을 편집하고 싶을 때의 툴의 작성
1. 이 기사에 관하여
이런 경우를 상정.
《매크로 첨부의 엑셀북을 편집할 때, 기동시에 실행하는 이벤트 프로시저를 작동시키지 않고 기동하고 싶다》
《그 외, 시트 액티브시의 이벤트 등의 「실행하고 싶지 않은 프로시저」를 일단 중단하고 싶다」
2.하고 싶은 일
표제대로입니다.
↓이런 방법도 있는 것 같네요.
h tps : // s 타부 cky. 코 m/wp/아 r ゔぇ s/5052
다만, 상기에 참조시켜 주신 방법이라고 귀찮게 해, 정리해 복수의 북을 열 때에 일일이 같은 일을 해야 하기 때문에,
이번에 작성한 툴로 상기 우려점을 클리어했습니다.
3. 작성한 코드
코드 자체는 매우 간단하고 실제 처리 부분의 스텝 수는 10 가량 정도라고 생각합니다.
(1)
우선 폼 호출 함수가 이와 같이 됩니다(매크로 호출의 쇼트 컷에 등록한다면 이것을 등록하면 편리합니다).
Tools.bas'******************************************************************************************
'*関数名 :invalidateEvents
'*機能 :ブックのイベントをフォーム表示している間無効にする
'*引数(1) :無し
'******************************************************************************************
Public Sub invalidateEvents()
'定数
Const FUNC_NAME As String = "invalidateEvents"
'変数
On Error GoTo ErrorHandler
'---以下に処理を記述---
'イベント無効化
Application.EnableEvents = False
'フォーム表示
F_invalidateEvents.Show vbModeless
ExitHandler:
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しましたので終了します" & _
vbLf & _
"関数名:" & FUNC_NAME & _
vbLf & _
"エラー番号" & Err.Number & Chr(13) & Err.Description, vbCritical
GoTo ExitHandler
End Sub
(2)
위에서 호출하는 양식의 모양과 코드는 다음과 같습니다.
F_invalidateEvents.frmOption Explicit
'******************************************************************************************
'*関数名 :CommandButton_Close_Click
'*機能 :閉じるボタン押下時処理
'*引数(1) :
'******************************************************************************************
Private Sub CommandButton_Close_Click()
'定数
Const FUNC_NAME As String = "CommandButton_Close_Click"
'変数
On Error GoTo ErrorHandler
'---以下に処理を記述---
'フォームを閉じる
Unload F_invalidateEvents
ExitHandler:
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しましたので終了します" & _
vbLf & _
"関数名:" & FUNC_NAME & _
vbLf & _
"エラー番号" & Err.Number & Chr(13) & Err.Description, vbCritical
GoTo ExitHandler
End Sub
'******************************************************************************************
'*関数名 :UserForm_QueryClose
'*機能 :〇〇○
'*引数(1) :〇〇○
'******************************************************************************************
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'定数
Const FUNC_NAME As String = "UserForm_QueryClose"
'変数
On Error GoTo ErrorHandler
'---以下に処理を記述---
'イベント有効化
Application.EnableEvents = True
ExitHandler:
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しましたので終了します" & _
vbLf & _
"関数名:" & FUNC_NAME & _
vbLf & _
"エラー番号" & Err.Number & Chr(13) & Err.Description, vbCritical
GoTo ExitHandler
End Sub
4. 코드 해설
양식 호출 직전에 이벤트 시스템 프로 시저를 비활성화하고,
닫기 버튼으로 다시 활성화합니다.
vbmodeless를 인수로 설정하고 있기 때문에 폼 표시시에도 엑셀로 작업이 가능합니다.
양식을 표시하는 동안 여러 통합 문서를 시작할 수도 있습니다.
5. 끝에
Github
도구를 올렸으므로 좋으면 참조하십시오.
Github
뭔가 보충이 있으면 댓글주세요.
Reference
이 문제에 관하여(【Excel VBA】 기동시에 실행하는 매크로가 우울한 북을 편집하고 싶을 때의 툴의 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dede-20191130/items/845fd382fe00ce18f767
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
표제대로입니다.
↓이런 방법도 있는 것 같네요.
h tps : // s 타부 cky. 코 m/wp/아 r ゔぇ s/5052
다만, 상기에 참조시켜 주신 방법이라고 귀찮게 해, 정리해 복수의 북을 열 때에 일일이 같은 일을 해야 하기 때문에,
이번에 작성한 툴로 상기 우려점을 클리어했습니다.
3. 작성한 코드
코드 자체는 매우 간단하고 실제 처리 부분의 스텝 수는 10 가량 정도라고 생각합니다.
(1)
우선 폼 호출 함수가 이와 같이 됩니다(매크로 호출의 쇼트 컷에 등록한다면 이것을 등록하면 편리합니다).
Tools.bas'******************************************************************************************
'*関数名 :invalidateEvents
'*機能 :ブックのイベントをフォーム表示している間無効にする
'*引数(1) :無し
'******************************************************************************************
Public Sub invalidateEvents()
'定数
Const FUNC_NAME As String = "invalidateEvents"
'変数
On Error GoTo ErrorHandler
'---以下に処理を記述---
'イベント無効化
Application.EnableEvents = False
'フォーム表示
F_invalidateEvents.Show vbModeless
ExitHandler:
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しましたので終了します" & _
vbLf & _
"関数名:" & FUNC_NAME & _
vbLf & _
"エラー番号" & Err.Number & Chr(13) & Err.Description, vbCritical
GoTo ExitHandler
End Sub
(2)
위에서 호출하는 양식의 모양과 코드는 다음과 같습니다.
F_invalidateEvents.frmOption Explicit
'******************************************************************************************
'*関数名 :CommandButton_Close_Click
'*機能 :閉じるボタン押下時処理
'*引数(1) :
'******************************************************************************************
Private Sub CommandButton_Close_Click()
'定数
Const FUNC_NAME As String = "CommandButton_Close_Click"
'変数
On Error GoTo ErrorHandler
'---以下に処理を記述---
'フォームを閉じる
Unload F_invalidateEvents
ExitHandler:
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しましたので終了します" & _
vbLf & _
"関数名:" & FUNC_NAME & _
vbLf & _
"エラー番号" & Err.Number & Chr(13) & Err.Description, vbCritical
GoTo ExitHandler
End Sub
'******************************************************************************************
'*関数名 :UserForm_QueryClose
'*機能 :〇〇○
'*引数(1) :〇〇○
'******************************************************************************************
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'定数
Const FUNC_NAME As String = "UserForm_QueryClose"
'変数
On Error GoTo ErrorHandler
'---以下に処理を記述---
'イベント有効化
Application.EnableEvents = True
ExitHandler:
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しましたので終了します" & _
vbLf & _
"関数名:" & FUNC_NAME & _
vbLf & _
"エラー番号" & Err.Number & Chr(13) & Err.Description, vbCritical
GoTo ExitHandler
End Sub
4. 코드 해설
양식 호출 직전에 이벤트 시스템 프로 시저를 비활성화하고,
닫기 버튼으로 다시 활성화합니다.
vbmodeless를 인수로 설정하고 있기 때문에 폼 표시시에도 엑셀로 작업이 가능합니다.
양식을 표시하는 동안 여러 통합 문서를 시작할 수도 있습니다.
5. 끝에
Github
도구를 올렸으므로 좋으면 참조하십시오.
Github
뭔가 보충이 있으면 댓글주세요.
Reference
이 문제에 관하여(【Excel VBA】 기동시에 실행하는 매크로가 우울한 북을 편집하고 싶을 때의 툴의 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dede-20191130/items/845fd382fe00ce18f767
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
'******************************************************************************************
'*関数名 :invalidateEvents
'*機能 :ブックのイベントをフォーム表示している間無効にする
'*引数(1) :無し
'******************************************************************************************
Public Sub invalidateEvents()
'定数
Const FUNC_NAME As String = "invalidateEvents"
'変数
On Error GoTo ErrorHandler
'---以下に処理を記述---
'イベント無効化
Application.EnableEvents = False
'フォーム表示
F_invalidateEvents.Show vbModeless
ExitHandler:
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しましたので終了します" & _
vbLf & _
"関数名:" & FUNC_NAME & _
vbLf & _
"エラー番号" & Err.Number & Chr(13) & Err.Description, vbCritical
GoTo ExitHandler
End Sub
Option Explicit
'******************************************************************************************
'*関数名 :CommandButton_Close_Click
'*機能 :閉じるボタン押下時処理
'*引数(1) :
'******************************************************************************************
Private Sub CommandButton_Close_Click()
'定数
Const FUNC_NAME As String = "CommandButton_Close_Click"
'変数
On Error GoTo ErrorHandler
'---以下に処理を記述---
'フォームを閉じる
Unload F_invalidateEvents
ExitHandler:
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しましたので終了します" & _
vbLf & _
"関数名:" & FUNC_NAME & _
vbLf & _
"エラー番号" & Err.Number & Chr(13) & Err.Description, vbCritical
GoTo ExitHandler
End Sub
'******************************************************************************************
'*関数名 :UserForm_QueryClose
'*機能 :〇〇○
'*引数(1) :〇〇○
'******************************************************************************************
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'定数
Const FUNC_NAME As String = "UserForm_QueryClose"
'変数
On Error GoTo ErrorHandler
'---以下に処理を記述---
'イベント有効化
Application.EnableEvents = True
ExitHandler:
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しましたので終了します" & _
vbLf & _
"関数名:" & FUNC_NAME & _
vbLf & _
"エラー番号" & Err.Number & Chr(13) & Err.Description, vbCritical
GoTo ExitHandler
End Sub
양식 호출 직전에 이벤트 시스템 프로 시저를 비활성화하고,
닫기 버튼으로 다시 활성화합니다.
vbmodeless를 인수로 설정하고 있기 때문에 폼 표시시에도 엑셀로 작업이 가능합니다.
양식을 표시하는 동안 여러 통합 문서를 시작할 수도 있습니다.
5. 끝에
Github
도구를 올렸으므로 좋으면 참조하십시오.
Github
뭔가 보충이 있으면 댓글주세요.
Reference
이 문제에 관하여(【Excel VBA】 기동시에 실행하는 매크로가 우울한 북을 편집하고 싶을 때의 툴의 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dede-20191130/items/845fd382fe00ce18f767
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【Excel VBA】 기동시에 실행하는 매크로가 우울한 북을 편집하고 싶을 때의 툴의 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dede-20191130/items/845fd382fe00ce18f767텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)