컴퓨터관련

엑셀 screenupdating...펌

맘편한넘 2010. 12. 7. 22:00

ScreenUpdating 은 VBA에서 모든 프로젝트에 활용될 수 있는 코드입니다.

일종의 Refresh 기능입니다. 기본값은 True이며,  False 라고 값을 주면

화면에 보이는 것들에 대해 새로 고침을 하지 않겠다 라는 뜻입니다.

매크로 한줄한줄마다 화면 갱신이 되지 않으니 당연히 속도가 향상이 됩니다.

매크로를 끝내기 전에 반드시 True로 돌려놓아야 합니다.

 

아래는 엑셀VBA 도움말에 있는 내용입니다.

 

ScreenUpdating 속성

True이면 화면 업데이트가 켜집니다. 읽기/쓰기가 가능한 Boolean 형식입니다.

주의

매크로 코드 속도를 높이려면 화면 업데이트 설정을 해제합니다. 매크로 실행 과정은 볼 수 없지만 속도가 빨라집니다.

매크로 실행이 끝나면 ScreenUpdating 속성을 다시 True로 설정해야 합니다.

 

 

ScreenUpdating 속성 예제

다음은 화면 업데이트 기능을 해제해 코드를 더 빠르게 실행할 수 있는 방법을 보여 주는 예제입니다. 이 예제는 Sheet1에 있는 열을 하나 건너 하나씩 숨기고, 실행하는 데 걸리는 시간을 표시합니다. 처음에는 열을 숨기고 화면 업데이터를 수행하며, 두 번째는 화면 업데이트 기능을 해제합니다. 이 예제를 실행할 때 메시지 상자에 표시되는 각각의 실행 시간을 비교해 볼 수 있습니다.

Dim elapsedTime(2)
Application.ScreenUpdating = True
For i = 1 To 2
    If i = 2 Then Application.ScreenUpdating = False
    startTime = Time
    Worksheets("Sheet1").Activate
    For Each c In ActiveSheet.Columns
        If c.Column Mod 2 = 0 Then
            c.Hidden = True
        End If
    Next c
    stopTime = Time
    elapsedTime(i) = (stopTime - startTime) * 24 * 60 * 60
Next i
Application.ScreenUpdating = True
MsgBox "Elapsed time, screen updating on: " & elapsedTime(1) & _
        " sec." & Chr(13) & _
        "Elapsed time, screen updating off: " & elapsedTime(2) & _
        " sec."