EXCEL VBA 가속화 클래스 생성

소개



마지막으로 Excel VBA 가속 기사를 썼습니다.
htps : // m / ぉ ch / ms / 3 어 9100034 에cf2d804

이번에는 기사에서 소개하는 화면 업데이트 설정의 클래스화를 작성합니다.
화면 갱신의 정지를 생성자에 쓰는 것으로, 클래스를 인스턴스화했을 때에 화면의 갱신을 정지해 고속화해, 갱신을 유효화를 소멸자에 써 오브젝트가 개방된 시점에서 자동적으로 갱신을 유효 화할 수 있습니다.

전회의 기사에서는 통상의 프로시저였지만 이번은 클래스라고 하는 것으로 인스턴스화하기 때문에 조금 처리 부하가 커집니다만, 정말로 사소한 차이이며 처리의 최초에 1회만 실행하는 것이기 때문에, 문제가되지 않을 것입니다.
또, 통상의 프로시저의 경우, 조기 리턴등으로 종료 조건이 복수 있는 경우, 그 때마다 갱신의 유효화를 명시적으로 쓸 필요가 있었습니다만 클래스의 소멸자의 경우는 그 필요가 없습니다.

※ 오류 등으로 처리가 멈추면 소멸자가 실행되지 않으므로주의하십시오.

가속화 클래스 작성



클래스 모듈을 작성하고 다음 코드를 작성하십시오.
이번에는 클래스명은 Accelerator 라고 하고 있습니다.

Accelerator
Private Sub Class_Initialize()
    '画面の更新を停止
    With Application
        .ScreenUpdating = False
        .Calculation = xlCalclationManual
        .EnableEvents = False
        .Cursor = xlWait
    End With
End Sub

Private Sub Class_Terminate()
    '画面の更新を有効化
    With Application
        .ScreenUpdating = True
        .Calculation = xlCalclationAutomatic
        .EnableEvents = True
        .Cursor = xlDefault
    End With
End Sub

Public Sub Init()
    ' 宣言時にNewをした場合コンストラクタが走らないためこのプロシージャを使用する
End Sub

사용방법



처리의 시작 부분에서 인스턴스화하십시오.
Dim Ac As Accelerator
Set Ac = New Accelerator

선언시에 New 를 하는 경우는 다음과 같이 Init
Dim Ac As New Accelerator
Ac.Init

처리가 끝나고 객체가 열리면 화면 업데이트가 활성화됩니다.

끝에



이상이 Excel VBA 가속화 클래스를 만드는 방법입니다.
이 기사를 읽어 주셔서 감사합니다.

관련 기사


  • Excel VBA 가속화
  • VBA에서 자주 사용하는 프로 시저 (FileSystemObject)

  • 내 계정



    좋은 웹페이지 즐겨찾기