|
Format 함수 구문은 다음과 같은 구성 요소로 되어 있습니다. | |
구성 요소 |
설명 |
expression Format Firstdayofweek Firstweekofyear |
필수. 유효한 식이면 됨. 선택. 지정 또는 사용자 정의된 유효한 유형 식. 선택. 한 주의 첫 날을 지정하는 상수. 선택. 한 년도의 첫 주를 지정하는 상수. |
|
firstdayofweek 인수 설정은 다음과 같습니다. |
|
firstweekofyear 인수 설정은 다음과 같습니다. | ||||
상수 |
값 |
설명 |
|
상수 |
값 |
설명 |
vbUseSystem VbSunday vbMonday vbTuesday vbWednesday vbThursday vbFriday vbSaturday |
0 1 2 3 4 5 6 7 |
NLS API 설정 사용. 일요일(기본값) 월요일 화요일 수요일 목요일 금요일 토요일 |
|
vbUseSystem VbFirstJan1 VbFirstFourDays VbFirstFullWeek |
0 1 2 3 |
NLS API 설정 사용. 1월 1일이 들어 있는 주에서 시작(기본값). 새로운 연도에서 최소한 4일 이상의 날이 들어 있는 첫 번째 주에서 시작. 7일이 다 있는 첫 주에서 시작. |
|
참고
형식화 대상 |
형식화 방법 |
숫자 날짜/시간 날짜와 시간 열 숫자 문자열 |
미리 정의된 숫자 형식을 이용하거나 사용자 정의 숫자 형식을 만듭니다. 미리 정의된 날짜/시간 형식을 사용하거나 사용자 정의 날짜/시간 형식을 만듭니다. 날짜와 시간 형식 또는 수 칙 형식을 이용합니다. 사용자 정의 문자열 형식을 만듭니다. |
|
format인수를 지정하지 않고서 숫자를 형식화하면, Format 함수는 Str 함수와 유사한 기능을 제공합니다. 하지만, Format 함수를 이용해 양수를 문자열로 형식화한 경우 그 값의 부호를 위한 공간이 포함되지 않습니다. Str 함수를 이용해 변환된 경우 부호를 위한 공간이 포함되어서 변환됩니다.
Format 함수 예제
다음은 Format이라는 함수를 사용하여 주어진 값을 Visual Basic 내부에 정의되어 있는 형식이나 아니면 사용자들이 사용자들이 원하는 나름대로의 형식으로 변환하는 예제 입니다. 날짜 구분자(/), 시간 구분자 구분자(:) , 오전/오후 리터럴에 대해서 시스템이 표시하는 실제 출력 형식은 그 코드가 실행되고 있는 시스템의 국가 설정이 무엇으로 되어있느냐에 따라서 달라집니다. 시간과 날짜가 개발 환경 내에 표시될 때는 지역 코드의 간단한 시간 유형과 간단한 날짜 유형이 사용되고, 실행 중인 코드가 표시될 때는 지역 시스템의 간단한 시간 유형과 간단한 날짜 유형이 사용됩니다.
이는 로케일 코드와 다를 수 있습니다. 이 예제에 대해서는 영어/미국으로 가정합니다.
MyTime과 MyDate는 현재 시스템의 간단한 시간과 간단한 날짜 설정을 사용해 개발 환경 내에 표시됩니다.
Dim MyTime, MyDate, MyStr
MyTime = #
MyDate = #January 27, 1993#
MyStr = Format(Time, "Long Time") ' 현재 시스템 시간을 자세한 시간 유형으로 정의된 시스템에 반환합니다.
MyStr = Format(Date, "Long Date") ' 현재 시스템 날짜를 자세한 날짜 유형으로 정의된 시스템에 반환합니다.
MyStr = Format(MyTime, "h:m:s") ' "
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' "
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' "Wednesday,를 반환합니다.
' Jan 27 1993".
' 유형이 지원되지 않으면, 문자열을 반환합니다.
MyStr = Format(23) ' "23"을 반환합니다.
' 사용자 정의 유형.
MyStr = Format(5459.4, "##,##0.00") ' "5,459.40"을 반환합니다.
MyStr = Format(334.9, "###0.00") ' "334.90"을 반환합니다.
MyStr = Format(5, "0.00%") ' "500.00%"을 반환합니다.
MyStr = Format("HELLO", "<") ' "hello"를 반환합니다.
MyStr = Format("This is it", ">") ' "THIS IS IT"을 반환합니다.
◆ 다른 숫자 값에 대한 여러 유형(Format 함수)
숫자를 위한 사용자 정의 유형 식에는 세미콜론으로 나누어진 1-4개의 부분을 가질 수 있습니다.
format인수가 지정된 숫자 유형을 포함하고 있으면 한 부분만 허용됩니다.
사용 영역 |
결과 |
한 부분만 사용 두 부분 세 부분 네 부분 |
유형 식은 모든 값에 적용. 첫 부분은 양수와 0값에 적용, 둘째 부분은 음수 값에 적용. 첫 부분은 양수 값, 둘째 부분은 음수 값, 세째 부분은 0값에 적용. 첫 부분은 양수 값, 둘째 부분은 음수 값, 세째 부분은 0값, 마지막 부분은 Null 값에 적용. |
|
다음 예는 두 부분을 사용한 경우입니다. 첫 부분은 양수와 0값의 유형을 정의합니다. 둘째 부분은 음수 값의 형식을 정의합니다.
"$#,##0;($#,##0)"
If 사이에 아무것도 없는 세미콜론을 포함하면 그 부분은 양수 값 형식으로 출력됩니다. 예를 들어, 다음 형식에서 양수와 음수 값은 첫 부분의 형식을 이용해서 표시됩니다. 0값의 경우 Zero 라고 표시됩니다.
"$#,##0;;\Z\e\r\o"
◆ 다른 문자열 값에 대한 여러 유형(Format 함수)
문자열의 형식 식은 세미콜론(;)으로 나누어진 한 개 또는 두 개의 부분을 가질 수 있습니다.
사용 부분 |
결과 |
한 부분만 사용 두 부분 |
유형은 모든 문자열 데이터에 적용. 첫 부분은 문자열 정보에, 둘째 부분은 Null 값과 길이가 0인 문자열("") 에 적용. |
|
◆ 지정된 날짜/시간 유형(Format 함수)
다음 표에는 지정된 날짜와 시간 유형 이름이 나열되어 있습니다.
유형 이름 |
설명 |
General Date Long Date Medium Date Short Date Long Time Medium Time Short Time |
날짜 와/또는 시간을 표시. 실제 값의 경우 날짜와 시간을 표시(예: 사용자 시스템의 자세한 날짜 유형으로 날짜를 표시. yy 년 m 월 d 일 형식으로 날짜를 표시 (예: 사용자 시스템의 간단한 날짜 형식으로 날짜 표시. 사용자 시스템의 시간 표시 형식으로 시간을 표시(시, 분, 초 정보 포함). 시와 분, 오전/오후를 이용해 시간을 12 시간 형식으로 표시. 24시간 형식을 이용해 시간을 표시(예: |
|
◆ 지정된 숫자 유형(Format 함수)
다음 표에는 정의된 형식 이름을 나열한 것입니다.
형식 이름 |
설명 |
General Number Currency Fixed Standard Percent Scientific Yes/No True/False On/Off |
3자리 단위마다 콤마로 구분 없이 숫자를 표시. 필요 시 3자리 단위마다 콤마로 구분하고 소수점 우측으로 두 자리까지 표시함. 출력은 시스템 로케일 설정에 근거. 소수점 좌측으로 최소 한 자리, 우측으로 최소 두 자리를 표시. 3자리 단위마다 콤마로 구분. 소수점 좌측으로 최소 한 자리, 우측으로 최소 두 자리를 표시. 숫자에 100을 곱하고 그 우측에 % 기호를 덧붙임. 항상 소수점 우측으로 두 자리를 표시. 표준 숫자 표기 이용. 숫자가 0일 경우 No를 표시, 그 외의 경우에는 Yes라고 표시. 숫자가 0일 경우 False라고 표시, 그 외의 경우에는 True라고 표시. 숫자가 0일 경우 Off라고 표시, 그 외의 경우에는 On이라고 표시 |
|
◆ 사용자 정의 날짜/시간 유형(Format 함수)
다음 표에는 사용자 정의 날짜/시간 유형을 만드는 데 사용할 수 있는 문자들을 나열했습니다.
문자 설명 |
(:) 시간 구분자. 특정 로케일에서는 다른 문자들이 시간 구분자로 사용될 수 있음. 시간 값이 형식화될 때 시간 구분자는 시, 분, 초를 나눔. 형식화된 출력에서 시간 구분자로 사용되는 실제 문자는 사용자의 시스템 설정에 의해 결정. (/) 날짜 구분자. 특정 지역에서는 다른 문자들이 날짜 구분자로 사용될 수 있음. 날짜 값이 형식화될 때 날짜 구분자는 일, 월, 연도를 나눔. 형식화된 출력에서 날짜 구분자로 사용되는 실제 문자는 사용자 시스템의 설정에 의해 결정됨. aaa 요일을 약어로 표시 (일 - 토) aaaa 요일을 원래대로 표시(일요일 - 토요일) c 날짜는 ddddd로, 시간을 ttttt로 표시(이 순서대로). 날짜 일련 번호에 소수점 이하 부분이 없을 경우 날짜 정보만 표 시. 정수 부분이 없을 경우 시간 정보만 표시. d ‘일’ 을 숫자로 표시(1-31). 1-9 출력 시 앞에 ‘0’ 을 붙이지 않음. dd ‘일’ 을 숫자로 표시(01-31). 1-9 출력 시 앞에 ‘0’ 을 붙임. ddd ‘날’ 을 약어로 표시(Sun-Sat). dddd ‘날’ 을 원래대로 표시(Sunday-Saturday). ddddd 날짜를 사용자 시스템의 간단한 날짜 형식 설정에 따라 형식화된 완전한 날짜로 표시(일, 월, 연도 포함). Microsoft Windows에서 간단한 날짜 형식은 기본적으로 월/일/연도(m/d/yy) 형태로 표현. dddddd 날짜를 사용자 시스템에서 인식하는 자세한 날짜 형식 설정대로 형식화된 완전한 날짜로 표시(일, 월, 연도 포함). Microsoft Windows에서는 자세한 날짜 형식의 기본 형식은 월 일, 연도(mmmm dd, yyyy.). w 주일의 일을 숫자로 표시(일요일로는 1 부터 토요일은 7까지). Ww 연도의 주일을 숫자로 표시(1-54). M 달을 숫자로 표시(1-12). 1-9 표시 시 앞에 ‘0’ 붙지 않음. m이 h(시) 또는 hh(시) 바로 뒤에 위치하면 ‘달’이 아니 라 ‘분’이 표시. mm 달을 숫자로 표시(01-12). 1-9 표시 시 앞에 ‘0’ 붙음. m이 바로 h(시) 또는 hh(시) 뒤에 위치하면 ‘달’이 아니라 ‘분’ 이 표시. mmm 달을 약어로 표시(Jan - Dec). mmmm 달의 명칭을 원래대로 표시(January - December). ooo 달을 표시 (1월 - 12월) oooo 달을 표시 (1월 - 12월) e 단기 연도를 두 자릿수로 표시 (00 - 99) |
|
문자 설명 |
ee 단기 연도를 네 자릿수로 표시 (100-9999) ggg 연도 앞에 ‘단기’ 또는 ‘서기’를 표시 Q 연도의 분기를 숫자로 표시(1 - 4). Y 연도의 일을 숫자로 표시(1 - 366). yy 연도를 두 자릿수로 표시(00 - 99). yyyy 연도를 4 자릿수로 표시(100 - 9999). h 시를 숫자로 표시(0 - 23). 0-9 표시 시 앞에 ‘0’ 붙지 않음. hh 시를 숫자로 표시(00 - 23). 0-9 표시 시 앞에 ‘0’ 붙음. n 분을 숫자로 표시(0 - 59). 0-9 표시 시 앞에 ‘0’ 붙지 않음. nn 분을 숫자로 표시(00 - 59). 0-9 표시 시 앞에 ‘0’ 붙음. s 초를 숫자로 표시(0 - 59). 0-9 표시 시 앞에 ‘0’ 붙지 않음. ss 초를 숫자로 표시(00 - 59). 0-9 표시 시 앞에 ‘0’ 붙음. ttttt 시간을 사용자 시스템에서 인식하는 시간 형식으로 정의된 시간 구분자를 이용해서 형식화된 완전한 시간(시, 분, 초 포함)으로 표시. 출력하는 시간이 AM/PM 12-시간 시계를 이용. 시간이 오전인 경우 오전(대문자)이 시간과 함께 표시. 오후 시간인 경우 오후(대문자)가 시간과 함께 표시. am/pm 12-시간 시계를 이용. 시간이 오전인 경우 오전(소문자)이 시간과 함께 표시. 오후 시간인 경우 오후(소문자)가 시간과 함께 표시. A/P 12-시간 시계를 이용. 시간이 오전인 경우 A(대문자)가 시간과 함께 표시. 오후 시간인 경우 P(대문자)가 시간과 함께 표시. a/p 12-시간 시계를 이용. 시간이 오전인 경우 a(소문자)가 시간과 함께 표시. 오후 시간인 경우 p(소문자)가 시간과 함께 표시. AMPM 12-시간 시계를 이용. 사용자 시스템에서 정의된 대로 오전 문자열을 오전 시간인 경우 표시. 시간이 오후인 경우 오 후 문자열을 사용자 시스템에서 정의된 대로 표시. 오전 오후는 대/소문자 구분이 없으나 표시되는 문자열은 사용자 시스템 설정과 일치하게 나타남. Microsoft Windows에서는 기본 형식이 오전/오후임. |
|
사용자 정의 날짜/시간 유형 예제
다음은
형식 표시
m/d/yy 12/7/58
d-mmm 7-Dec
d-mmmm-yy 7-December-58
d mmmm 7 December
mmmm yy December 58
hh:mm AM/PM
h:mm:ss a/p
h:mm
h:mm:ss
m/d/yy h:mm 12/7/58
◆ 사용자 정의 숫자 형식(Format 함수)
사용자 정의 숫자 형식을 만드는 데 사용될 수 있는 문자들이 다음 표에 나열되어 있습니다.
문자 설명 |
없음 형식 없이 숫자를 표시. (0) Digit placeholder. 숫자 또는 '0'표시. 형식 문자열에서 0이 나타나는 자리에 숫자가 있는 식의 경우 그대로 표시. 그 외의 경우에는 그 자리에 '0'표시.형식 식에서 소수점 양쪽에 숫자의 개수가 '0'의 개수보다 적을 때, 숫자 앞/뒤 쪽에 ‘0’으로 채워서 표시. 형식 식에서 소수점 우측에 ‘0’의 개수가 원래 숫자의 소수점 우측의 숫자의 개수보다 적으면, ‘0’ 자릿수에서 반올림되어서 표현. 형식 식에서 소수점 좌측에 ‘0’의 개수가 원래 숫자의 소수점 좌측의 숫자의 개수 보다 적으면 변환없이 그대로 표현. (#) 숫자 자리표시자. 숫자 표시 또는 아무것도 표시 않음. ‘#’ 기호가 등장하는 자리에 숫자가 있는 식에서는 숫자가 그대 로 표시. 그 외의 경우에는 그 자리에 아무것도 표시하지 않음.이 기호는 기능이 숫자 자리표시자와 비슷함. 다만, 형 식식에서 소수점 양쪽에 ‘#’문자의 개수가 숫자의 개수와 같거나 많을 때 숫자의 앞/뒤 쪽에 ‘0’이 채워지지 않음. (.) 십진 자리표시자. 특정 로케일에서는 콤마가 소수점 분리기호로 사용. 십진 자리표시자는 소수점 분리 기호의 양쪽으 로 몇자리의 숫자가 표시되는지 결정. 유형식에서 이 기호의 좌측으로 숫자 부호들만 있으면, 1 보다 크기가 작은 숫 자는 소수점 분리기호부터 표시됨. 소수점 앞에 0이 표시되려면 소수점 분리기호의 좌측 첫 차리에 숫자자리 표시자를 이용. 형식화된 출력에서 십진 자리표시자로 사용되는 문자는 사용자 시스템에서 인식하는 숫자 형식에 의해 좌우. |
|
문자 설명 |
(%) % 자리표시자. 식은 100으로 곱해짐. ‘%’기호는 형식 문자열에서 이 기호가 나타나는 자리에 삽입됨. (,) 1000 단위 구분자. 특정 지역에서는 마침표가 1000 단위 구분 기호로 이용됨. 1000 단위 구분자는 숫자에서 소수점 분 리 기호의 좌측으로 4자리 이상의 숫자일 때 100단위와 1000 단위를 구분하는 기호임. 형식 식에서 1000 단위 구분자 의 전후에 숫자 자리표시자(0 or #)가 위치한 경우 1000 단위 구분자는 표준 방식으로 사용됨을 지정함. 두개의 나란 히 나열된 1000 단위 구분자나 소수점 분리 기호(소수점 지정 여부에 상관없이)의 바로 좌측의 1000 단위 구분자는 “숫자를 1000으로 나누어서 일정 비율로 줄이며, 필요 시 반올림을 한다” 는것을 의미. 예를 들어, 다음 형식 문자열 - #0,, 을 사용해서 ‘1억’을 ‘100’으로 표현할 수 있음. 이때 ‘1백만’ 보다 작은 숫자는 ‘0’으로 표시됨. 소수점 분리 기호 바 로 좌측 외의 위치에 두개의 1000 단위 구분자가 있을 경우 한 개의 1000 단위 구분자의 사용을 지정한 것과 같은 효 과임. 형식화된 출력에서 1000 단위 구분자로 사용되는 실제 문자는 사용자의 시스템에서 인식하는 숫자 형식에 의해 좌우. (:) 시간 구분자. 특정 지역에서는 다른 문자가 시간 구분자로 사용될 수 있음. 시간 구분자는 시간이 형식화될 때 시, 분, 초 사이를 구분함. 형식화된 출력에서 시간 구분자로 사용되는 실제 문자는 사용자의 시스템 설정에 의해 좌우됨. (/) 날짜 구분자. 특정 지역에서는 날짜 구분자로 다른 기호들이 사용될 수 있음. 날짜 구분자는 날짜가 형식화될 때 일, 월, 연도로 구분함. 형식화된 출력에서 날짜 구분자로 사용되는 실제 문자는 사용자의 시스템 설정에 의해 좌우됨. (E-E+e-e+) 공학적 형식. 형식 식에서 E-, E+, e-, or e+기호의 우측으로 최소 한 개의 숫자 자리표시자(0 또는 #))가 위 치할 경우 숫자는 공학적 형식으로 표시되며 ‘E' 또는 'e'가 숫자와 지수 사이에 삽입됨. 기호 우측에 위치한 숫자 자 리표시자의 개수는 지수의 자릿수를 결정함. 음수의 지수 값 표현 시에는 ’E-' 또는 'e-'를 사용. ‘E+' 또는 'e+' 사용 시 음수의 지수 값 옆에는 음수 부호가, 양수의 지수 값 옆에는 양수 부호가 표시됨. - + $ ( ) 리터럴 문자 표시. 나열된 문자 이외의 문자를 표시하려면 바로 앞에 백슬래시(\)를 삽입하거나 큰 따옴표 ("")로 둘러쌈. (\) 유형 문자열에서 다음 문자를 표시. Literal 문자로서 특별한 의미가 있는 문자는 백슬래시(\)를 앞에서 삽입함. 백슬래 시는 표시되지 않음. 이것은 바로 다음 문자를 큰 따옴표 안에 놓는 것과 같음. 백슬래시를 표시하려면 두 개의 백슬 래시 이용(\\).리터럴 문자로 표시될 수는 없는 문자는 날짜-유형과 시간-유형 문자(a, c, d, h, m, n, p, q, s, t, w, y, /, :), 숫자-유형 문자(#, 0, %, E, e,콤마,마침표), 문자열-유형 문자(@, &, <, >, and !). ("ABC") 큰 따옴표("") 안에 문자열을 표시. 코드 내에서format 으로 문자열을 포함하려면 Chr(34) 안에 글을 둘러싸야 함(34 는 큰 따옴표(")의 문자 코드). |
|
◆ 사용자 정의 문자열 유형(Format 함수)
다음 문자를 이용해 문자열 유형 식을 만들 수 있습니다.
문자 |
설명 |
@ & < > ! |
문자 자리표시자. 문자 또는 공백을 표시. 문자열의 유형 식에서 기호(@) 가 나타나는 자리에 문자가 있을 경우 그대로 표시. 그 외의 경우 그 자리에 공백을 표시. 자리표시자는 오른쪽에서 왼쪽으로 채워짐. 단, 형식 문자열에 느낌표(!)가 있을 경우에는 반대로 채워짐. 문자 자리표시자. 문자 표시 또는 아무것도 표시 않음. 문자열에서 엠퍼샌트(&) 기호가 나타나는 자리에 문자가 있을 경우 그대로 표시. 자리표시자가 있으면 그대로 표시; 없을 경우 아무것도 표시 않음. 자리표시자는 오른쪽에서 왼쪽으로 채워짐. 단, 형식 문자열에 느낌표(!)가 있을 경우에는 반대로 채워짐. 강제로 소문자 표시. 모든 문자를 소문자로 표시함. 강제로 대문자 표시. 모든 문자를 대문자로 표시함. 자리표시자 안에서 왼쪽부터 오른쪽으로 채워지게 함. 원칙은 오른쪽에서 왼쪽으로 채워지는 것임. |
|