차례:
- 화면 업데이트 끄기
- 자동 계산 사용 안함
- 이러한 성가신 경고 메시지 제거
- 객체 참조 단순화
- 변수 유형 선언
- 개체의 속성을 여러 개 설정해야합니까? With-With With 구조를 사용하면 코드가 더 빨리 실행됩니다. 추가 이점은 코드를 읽기가 더 쉬울 수 있다는 것입니다.
비디오: 엑셀 중수도 몰랐던 빠른 채우기 (업무 속도 2배 향상) 2024
VBA for Excel 2016은 빠르지 만 항상 빠르지는 않습니다. (컴퓨터 프로그램은 결코 빠르지 않습니다.) 매크로를 빠르게 할 수있는 프로그래밍 예제를 찾으려면 계속 읽으십시오.
화면 업데이트 끄기
매크로를 실행하면 앉아서 매크로에서 발생하는 모든 화면상의 동작을 볼 수 있습니다. 이 작업을 수행하는 것이 유익 할 수도 있지만, 매크로가 올바르게 작동하게되면 종종 성가 시게되고 매크로의 성능이 크게 저하 될 수 있습니다. 다행히 매크로를 실행할 때 일반적으로 발생하는 화면 업데이트를 비활성화 할 수 있습니다. 화면 업데이트를 끄려면 다음 문을 사용하십시오.
신청서. ScreenUpdating = False
사용자가 매크로 도중 어떤 일이 발생했는지 볼 수있게하려면 다음 명령문을 사용하여
Application 화면을 다시 켜십시오. ScreenUpdating = True
속도 차이를 보여주기 위해 숫자로 범위를 채우는 간단한 매크로를 실행하십시오:
Sub FillRange () Dim r을 Long으로, Long으로 긴 숫자를 Long Number = 0으로 r = 1 ~ 50 c = 1 ~ 50의 경우 Number = Number + 1 Cells (r, c). 셀 (r, c)을 선택하십시오. 값 = 번호 다음 c 다음 r 끝 서브
각 셀이 선택되고 값이 셀에 입력 된 것을 볼 수 있습니다. 이제 프로 시저 시작 부분에 다음 명령문을 삽입하고 다시 실행하십시오.
신청서. ScreenUpdating = False
범위가 훨씬 빠르게 채워지고 매크로 실행이 완료되고 화면 업데이트가 (자동으로) True로 설정 될 때까지 결과가 표시되지 않습니다.
코드를 디버깅 할 때, 프로그램 업데이트가 화면을 다시 켜지 않고 중간에서 어딘가에서 끝나는 경우가 있습니다. 이로 인해 Excel의 응용 프로그램 창이 완전히 응답하지 않는 경우가 있습니다. 이 고정 된 상태를 벗어나는 방법은 간단합니다. VBE로 돌아가서 직접 실행 창에서 다음 문을 실행합니다.
신청서. ScreenUpdating = True
자동 계산 사용 안함
복잡한 수식이 많은 워크 시트가있는 경우 매크로가 실행되는 동안 계산 모드를 수동으로 설정하여 작업 속도를 크게 높일 수 있습니다. 매크로가 완료되면 계산 모드를 다시 자동으로 설정하십시오.
다음 명령문은 Excel 계산 모드를 수동으로 설정합니다:
Application. Calculation = xlCalculationManual
다음 명령문을 실행하여 계산 모드를 자동으로 설정합니다:
Application. Calculation = xlCalculationAutomatic
코드에서 수식 결과가있는 셀을 사용하는 경우 계산을 끄면 Excel에 명시 적으로 지시하지 않으면 셀이 다시 계산되지 않습니다.
이러한 성가신 경고 메시지 제거
알다시피 매크로는 자동으로 일련의 작업을 수행 할 수 있습니다. 많은 경우 Excel이 매크로를 수행하는 동안 매크로를 시작한 다음 휴식 룸에서 기다릴 수 있습니다. 그러나 일부 Excel 조작은 사람의 응답이 필요한 메시지를 표시합니다. 이러한 유형의 메시지는 사용자가 비밀 트릭을 알지 못하는 경우 매크로를 실행하는 동안 Excel을 무인 상태로 둘 수 없음을 의미합니다.
매크로를 실행하는 동안 이러한 유형의 경고를 표시하지 않도록 Excel에 지시 할 수 있습니다.이러한 경고 메시지를 피하는 비밀 요령은
응용 프로그램에 다음 VBA 문을 매크로에 삽입하는 것입니다. DisplayAlerts = False
Excel에서는 이러한 유형의 메시지에 대해 기본 작업을 실행합니다. 시트를 삭제하는 경우 기본 작업은 삭제입니다. 기본 작업이 무엇인지 확실하지 않으면 테스트를 수행하여 어떤 일이 발생하는지 확인하십시오.
절차가 끝나면 Excel에서 DisplayAlerts 속성을 True로 자동으로 다시 설정합니다. 절차가 끝나기 전에 경고를 다시 표시해야하는 경우
응용 프로그램 문을 사용하십시오. DisplayAlerts = True
객체 참조 단순화
이미 알고 있겠지만 객체에 대한 참조는 매우 길어질 수 있습니다. 예를 들어 Range 개체에 대한 정규화 된 참조는
통합 문서 ("MyBook. xlsx")와 같습니다. 워크 시트 ("Sheet1") _. Range ("InterestRate")
매크로에서이 범위를 자주 사용하는 경우 Set 명령을 사용하여 개체 변수를 만들 수 있습니다. 예를 들어 다음 문은이 Range 개체를 Rate라는 개체 변수에 할당합니다.
Set Rate = Workbooks ("MyBook. xlsx") _. 워크 시트 ("Sheet1"). 범위 ("InterestRate")
이 개체 변수를 정의한 후에는 긴 참조가 아닌 변동 변수 인 Rate을 사용할 수 있습니다. 예를 들어, InterestRate:
Rate 셀의 값을 변경할 수 있습니다. 값 =. 085
다음 문장보다 훨씬 쉽게 입력 할 수 있습니다:
통합 문서 ("MyBook. xlsx"). 워크 시트 ("Sheet1"). _ 범위 ("InterestRate") =. 085
코딩을 단순화하는 것 외에도 객체 변수를 사용하면 매크로의 속도가 빨라집니다.
변수 유형 선언
일반적으로 변수에 할당하는 데이터 유형에 대해 걱정할 필요가 없습니다. Excel에서 장면의 모든 세부 정보를 처리합니다. 예를 들어, MyVar라는 변수가 있으면 해당 변수에 여러 유형의 번호를 할당 할 수 있습니다. 프로 시저의 뒷부분에 텍스트 문자열을 지정할 수도 있습니다.
프로 시저를 가능한 빨리 실행하려면 Excel에 각 변수에 할당 할 데이터 유형을 알려주십시오. 이것은 변수 유형을 선언하는 것으로 알려져 있습니다. 일반적으로 가장 작은 바이트 수를 필요로하지만 아직 할당 된 모든 데이터를 처리 할 수있는 데이터 유형을 사용해야합니다. VBA가 데이터와 함께 작동하는 경우 실행 속도는 VBA가 처리 할 수있는 바이트 수에 따라 달라집니다. 즉, 데이터가 사용하는 바이트 수가 적을수록 VBA가 빠르면 데이터에 액세스하고 조작 할 수 있습니다.이것에 대한 예외는 Integer 데이터 유형입니다. 속도가 중요한 경우 Long 데이터 형식을 대신 사용하십시오.
객체 변수를 사용하는 경우 변수를 특정 객체 유형으로 선언 할 수 있습니다. 예를 들면 다음과 같습니다.
초저녁 범위 설정 비율 = 통합 문서 ("MyBook. xlsx") _. 워크 시트 ("Sheet1"). 범위 ("InterestRate")
With-End With 구조 사용
개체의 속성을 여러 개 설정해야합니까? With-With With 구조를 사용하면 코드가 더 빨리 실행됩니다. 추가 이점은 코드를 읽기가 더 쉬울 수 있다는 것입니다.
다음 코드는 With-End With를 사용하지 않습니다.
Selection. HorizontalAlignment = xlCenter 선택. VerticalAlignment = xlCenter 선택입니다. WrapText = True 선택. 오리엔테이션 = 0 선택. ShrinkToFit = 거짓 선택. MergeCells = False
With With End With:
With Selection을 사용하도록 다시 작성된 동일한 코드가 있습니다. HorizontalAlignment = xlCenter. VerticalAlignment = xlCenter. WrapText = True입니다. Orientation = 0. ShrinkToFit = False입니다. MergeCells = False End With
With-End With를 사용할 때 각 문이 점으로 시작하는지 확인하십시오.