엑셀 VBA 16진수에서 10진수, 10진수에서 16진수 변환 함수 만들기

엑셀(Excel)/VBA

엑셀 VBA 16진수에서 10진수, 10진수에서 16진수 변환 함수 만들기

 

환경: Microsoft Excel 2013

 

엑셀에서 16진수 -> 10진수로 10진수 -> 16진수로 변환하는 함수가 있습니다. 함수명은 HEX2DEC(), DEC2HEX() 입니다. HEX2DEC() 16진수 -> 10진수로 DEC2HEX() 10진수 -> 16진수로 변환시켜 줍니다. 그런데 VBA 에는 그런 함수가 없습니다. 그래서 VBA 프로그램 작성할 때 좀더 편하게 쓰기 위해 함수로 만들었습니다.

 

아래 그림처럼 엑셀에 함수 리스트에는 진수변환 함수인 HEX2DEC(), DEC2HEX() 가 있습니다.

 

엑셀 VBA 16진수에서 10진수, 10진수에서 16진수 변환 함수 만들기

 

먼저 16진수에서 10진수로 바꾸는 함수를 만들어 보겠습니다. VBA 에서 10진수 변환함수는 Val() 입니다. 각 진수 함수는 다음과 같습니다.

 

l  Oct() : 8진수 변환함수, 값 앞에 &0(영문자) 붙여야 한다.

l  Hex() : 16진수 변환함수, 값 앞에 &H 붙여야 합니다.

l  Val() : 10진수 변환함수

 

Val() 함수를 사용해서 만든 10진수 변환 사용자 정의 함수 입니다. 앞에 &H 를 붙여야 합니다.

Function HEXTODEC(Hex As String) As Long

  HEXTODEC = Val("&H" & Hex)

End Function

 

Hex() 함수를 사용해서 만든 16진수 변환 사용자 정의 함수 입니다.

Function DECTOHEX(Dec As Long) As String

  DECTOHEX = Hex(Dec)

End Function

 

위에서 만든 두 개의 함수를 적용한 결과 입니다.

엑셀 VBA 16진수에서 10진수, 10진수에서 16진수 변환 함수 만들기

 

Posted by 녹두장군