Sub MeasureSpeed()
  Dim StartTime As Variant, EndTime As Variant

  ' 시작 시간 기록
  StartTime = Timer

(예: 1부터 10000까지의 합 계산)
  Dim sum As Variant
  For i = 1 To 10000
    sum = sum + i
  Next i

  ' 종료 시간 기록
  EndTime = Timer

  ' 실행 시간 계산 및 출력
  MsgBox "매크로 실행 시간: " & Format(EndTime - StartTime, "0.00") & " 초"

End Sub

위는 속도측정용 1~10000까지  누적합산하는 매크로입니다.

매크로는 너무 간단해서 볼것도 말것도 없구요.

엑셀 속도측정을 해보신 분들은 아시겟지만 저정도 계산은 1/1000 초 정도 걸립니다.

소스코드가 너무 단순해서  빠른 컴이건 느린컴이건  속도가 위처럼 나와요.

그런데 이상한건, 어떤 날은  1/1000 초 나오던게(정상임)

어떤 날은 1/100 초가 나와요. 어떤날은 1/300 초가 나오기도 합니다. (모두 비정상)

왜 이렇게 속도가 들쭉날쭉인지 이유가 무엇일까요?

아래를 읽어보시고 좀 유추해주시고, 이유를 알고 싶습니다.

< 아래는 제가 했던 실험 정리>

1. 소스코드가 문제인가? 알아보려고....

만약에 1/100 초가 나오는날( 비정상인 날 ) 소스코드를 고쳐서 1~10까지만 더해보는 걸로 소스코드를 고쳐도 1/100 초 가 나옵니다.  그냥  1+2만 계산하고 답은 3.  끝 !   이런 계산만 하라고 소스코드를 고쳐도 1/300 초가 나옵니다. 그러므로 소스코드는 원인이 아니라고 결론.

2. 그럼 컴 문제인가? 생각해서....

만약에 1/100 초가 나오는날( 비정상인 날 ) 이 엑셀파일을 그대로 복사해서 다른 컴에서 실행해도 또 마찬가지로 1/100 초 가 나옵니다.  컴을 바꿔도 비정상인거죠. 매우 희안합니다. 그러므로 컴이 원인이 아니라고 결론.

3. 그럼 아예 새로 엑셀을 열고, 처음부터 위 소스를 그대로 타자를 치고 저장.

동일작동을 하는 새로운 엑셀 파일을 만든거죠. 이제야 비로소 1/1000 초가 나옵니다. (정상)  그런데 이게 며칠간 잘 되다가 또 이 파일도 느려져서 1/100 초로 될 것으로 예상.

저의 결론 : 위와같이 소스코드 문제 아님. 컴문제 아님.  위 3 과정을 유추하면, 잘되던 엑셀을 며칠 실행하면, 내가 모르는 것이 엑셀 안에 포함? 들어가버리는거 같음. 그것때문에 느려지는거 같음.  그래야 위 3이 설명이 되잖아요.