매크로를 빠르게 돌게(성능개선)하기위해...
VBA 코드를 최적화하는 코딩 방법 입니다.
1. 로직을 심플하게 분석
2. 화면에 실행상태 안보이게하기
Application.ScreenUpdating = False
3. `계산옵션` 수동
Application.Calculation = xlCalculationManual
4. 이벤트 중지
Application.EnableEvents = False
5. `페이지 나누기` 를 하지 말기. `페이지 나누기 미리보기`도 기본으로 하기.
ActiveSheet.DisplayPageBreaks = False
6. With ~ End With
7. "" 대신 vbNullString
8. 개체변수의 메모리 반환: Set objX = Nothing
9. 콜론(:)을 이용하여 줄 수, 줄이기
With Selection
.WrapText = True
.ShrinkToFit = False
End With
보다는
With Selection
.WrapText = True: .ShrinkToFit = False
End With
10. 고정값은 상수화(Const) 하기
Dim Pi As Double
Pi = 3.14159
보다는
Const Pi As Double = 3.141592
11. 불필요한 `복사 붙여넣기` 피하기
Sheet1.Range("A1:A200").Copy
Sheet2.Range("B1").PasteSpecial
Application.CutCopyMode = False
보다는
Sheet1.Range("A1:A200").Copy Sheet2.Range("B1")
12. 붙여넣기 후, 클립보드 지우기 (Application.CutCopyMode = False)
13. 매크로 기록기로 생성된 코드같은 스타일로 코딩하지 말기
Range("A1").Select
Selection.Interior.Color = vbRed
보다는
Range("A1").Interior.Color = vbRed
14. Late Binding(CreateObject를 이용한 개체 참조) 보다는 Early Binding(초기 개체 참조) 사용
Dim objWod As Object
Set objWod = CreateObject("Word.Application")
보다는
Dim objWod As New Word.Application
15. Variant 사용자제
Dim n As Variant
보다는
Dim n As Long
Dim c As Object
보다는
Dim c As Range
16. 가능한 반복문보다는 워크시트함수 이용 (Application.WorksheetFunction)
mProduct = 1
For i = 5 To 10
mProduct = mProduct * Cells(3, i)
Next
보다는
mProduct = Application.WorksheetFunction.Product(Range("C5:C10"))
출처 :
'엑셀관련' 카테고리의 다른 글
TEXT 서식지정 (! 느낌표) 팁 (0) | 2016.12.18 |
---|---|
http://m.blog.naver.com/leejason/220531640873 (0) | 2016.04.20 |
엑셀 백업 기능 설정 (0) | 2016.04.20 |
엑셀 2007 화일 열때 새창으로 열기 (0) | 2016.04.20 |
엑셀 스크롤바 크기 조정에 관한 문제 (0) | 2012.12.06 |