본문 바로가기

컴퓨터/VBA(Visual Basic for Application)

Microsoft Excel의 버전에 따른 명령 주기.

아우쿠스입니다.

 

VBA를 작성해서 여러 PC에 적용하다보면, 서로 다른 Excel 버전에 의해서,

 

파일 저장 방법이나(파일명 포함), 수식 등을 다르게 주어야 하는 경우가 생기게 됩니다.

 

하위 버전에서 동작하지 않는 수식 등이 대표적인 예가 되겠죠.

 

이런 경우, 간단한 if 문을 사용해서, Excel 버전에 따라 다르게 동작하도록 하는 방법입니다.

 

예제1)

    If (Excel.Application.Version >= "12.0") Then

'        Excel 버전이 12.0 이상인 경우 수행할 명령
        Else
'        Excel 버전이 12.0 미만인 경우 수행할 명령

    End If

 

간단하지요?

 

이것 외에 Select Case 문으로도 할 수 있습니다.

 

대신, Select Case 문의 경우, if 문처럼 수식으로 할 수도 있고(예제2),

 

항목을 정해놓고, 선택적으로 사용하게 끔 할수도 있습니다. (예제3)

 

예제2)

Select Case True
    Case Excel.Application.Version = "12.0"

'       버전이 12.0인 경우 수행할 명령

Case Excel.Application.Version = "14.0"

'       버전이 14.0인 경우 수행할 명령

End Select

 

예제3)

        Select Case Excel.Application.Version
            Case "12.0"
'             버전이 12.0인 경우 수행할 명령

            Case "14.0"
'             버전이 14.0인 경우 수행할 명령

        End Select

 

본인 취향에 따라, 작성할 수도 있지만,

 

Code의 단순화를 위해서는 예제3 이 더 좋겠지요?

 

궁금하신 점은 문의 바랍니다. ^^