본문 바로가기

엑셀/VBA

VBA Range의 NumberFormat 속성에 대해 알아보기

반응형

이전 글에서 Range의 속성 중에서 End 속성에 대해 알아보았으며 Formula 속성을 이용하여 합계식을 입력하는 것을 예제를 통해 알아보았습니다. 이번에는 NumberFormat 속성을 이용하여 셀의 표시 형식을 다루는 방법에 대해 알아보겠습니다.

 

VBA Range의 End 속성 이용하기

 

VBA Range의 End 속성 이용하기

이전 글에서 Range의 속성 중에서 CurrentRegion과 Offset 및 Resize에 대해 알아보았습니다. 이번에는 End 속성에 대해 알아보겠습니다. 엑셀 데이터를 Table로 사용하는 것을 VBA로 구현 - CurrentRegion 엑셀..

mr-johndoe.tistory.com

 

 

 

 

 

1. NumberFormat 속성

 엑셀에서는 셀에 표시 형식을 지정하여 원하는 형태로 데이터가 표시되도록 할 수 있습니다. VBA에서도 표시 형식을 지정할 수 있는데 이때 사용하는 속성이 NumberFormat입니다.

 

사용방법은 다음과 같습니다.

 

   Range(셀주소).NumberFormat = "표시 형식"

 

표시 형식은 엑셀의 셀 서식의 표시 형식과 동일하게 작성하시면 됩니다. 

예를 들어, 표시 형식에 #,###을 입력하면 통화 표시할 때 3자리마다 콤마(,)를 표시하는 형태로 화면에 출력되게 됩니다.

 

 

 

 

2. 예제로 확인

 엑셀에서 VBE 창을 열고 모듈을 생성합니다. 모듈 코드 창에 다음과 같이 입력합니다.

 

   Public Sub 표시형식()

      Range("A1") = "통화"

      Range("B1").NumberFormat = "#,###"

 

      Range("A2") = "소수점 자리"

      Range("B2").NumberFormat = "0.00"

 

      Range("A3") = "통화&소수점"

      Range("B3").NumberFormat = "#,###.00"

 

      Range("A4") = "색상지정"

      Range("B4").NumberFormat = "#,##0;[Red]-#,##0"

 

      Range("A5") = "백분율"

      Range("B5").NumberFormat = "0.00%"

 

      Range("A6") = "지수형식"

      Range("B6").NumberFormat = "##0.0E+0"

 

      Range("A7") = "날짜"

      Range("B7").NumberFormat = "yyyy-mm-dd"

 

      Range("A8") = "날짜"

      Range("B8").NumberFormat = "yyyy""년"" mm""월"" dd""일"""

 

      Range("A9") = "날짜 & 시간"

      Range("B9").NumberFormat = "yyyy-mm-dd h:mm"

 

      Range("A10") = "텍스트"

      Range("B10").NumberFormat = "@"

   End Sub

 

위의 코드를 입력하고 실행하시면 엑셀 시트의 A열에 해당 문자가 입력됩니다. 그럼 B열에 숫자를 입력해 보시면 정해진 표시 형식대로 입력값이 표시되는 것을 확인하실 수 있습니다.

 

반응형