1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

[펌] Visual Basic (비쥬얼 베이직) 함수 정리

조회 수 20068 추천 수 0 2009.11.27 00:40:49

Visual Basic 함수를 정리한 파일입니다.

저는 p2p에서 구했는데.. 음.. 

작성자는 천리안 아이디 : ocr, 에듀넷 아이디 : aaqq를 쓰신다고 하지만. 언제적 천리안이며, 언제적 에듀넷인지. ^-^;;

 

다운 받기 : VisualBasic_Function1.hwp

 

 

PIC338e.gif비주얼 베이직 함수 정리

●문자열관련함수


◆ Asc 함수

문자열의 첫 글자에 대응하는 문자 코드를 나타내는 Integer 값을 반환합니다.

구문  Asc(string)

필수 항목인 string 인수는 유효한 문자열 식이어야 합니다. string에 해당하는 문자가 없는 경우 런타임 오류가 발생합니다.

참고 

DBCS 계열 이외의 시스템에서는 0 55 값을 반환하나, DBCS 계열의 시스템에서는 -32768 

32767 사이의 값을 반환합니다.

메모

AscB 함수는 문자열에 포함된 바이트 데이터를 사용합니다. AscB 함수는 문자 코드의 첫 글자를 반환하는 대신에 첫째 바이트를 반환합니다. AscW 함수는 Asc 함수에서와 같이 Unicode를 지원하지 않는 플랫폼을 제외하고 Unicode 문자 코드를 반환합니다.

Asc 함수 예제

이 예제는 Asc 함수를 사용하여 문자열의 첫째 문자에 따른 문자 코드를 반환합니다.

Dim MyNumber

MyNumber = Asc("A") ' 65를 반환합니다.

MyNumber = Asc("a")  ' 97을 반환합니다.

MyNumber = Asc("Apple")      ' 65를 반환합니다.

문자 코드

ANSI 문자 집합과 같이 설정에서 특정 문자를 나타내는 숫자를 의미합니다.

Integer 데이터 형식

-32,768에서 32,767까지의 범위에서 2바이트 전체 숫자로 저장된 정수 변수를 갖는 데이터 형식을 의미합니다. Integer 데이터 형식은 또한 계산된 값을 나타내는데 사용됩니다. 퍼센트 기호(%)형식 선언 문자는 Visual Basic에서 Integer로 나타냅니다.

문자열 식

계속된 문자의 나열을 계산하는 식을 의미합니다. 문자열 식의 요소는 문자열 문자, 문자열 리터럴, 문자열 상수, 문자열 변수, 문자열 Variant를 반환하는 함수 또는 문자열 Variant (VarType 8)를 반환하는 함수를 포함합니다.

런타임 오류

코드가 실행되는 동안 발생하는 오류를 의미합니다. 런타임 오류는 문이 잘못된 작동을 시도할 때 발생하게 됩니다.

DBCS

1이나 2바이트를 사용하여 문자를 나타내는 문자 집합을 의미하며 256이상의 문자를 표현할 수 있습니다.

Unicode

국제 표준 기구(ISO)의 표준 문자를 의미합니다. Unicode는 16비트(2바이트)의 코딩법을 사용하여 65,536개의 별개 문자 공백을 허용합니다. Unicode는 구두 기호, 수학적 기호, 장식 활자를 포함하며 앞으로 증가될 표기에 대비한 상당한 여유를 가지고 있습니다.

Double 데이터 형식

64비트 숫자로 배정도 부동 소수점을 나타내는 데이터 형식으로 음수는 -1.79769313486232E308에서 -4.94065645841247E-324까지의 범위를 가지고 있고 양수는 4.94065645841247E-324에서 1.79769313486232E308까지의 범위를 가지고 있습니다. Visual Basic에서 숫자 기호 (#) 형식 선언 문자는 Double을 나타냅니다.

숫자 식

숫자로 평가될 수 있는 식을 의미합니다. 식의 요소는 결과적으로 숫자가 되는 키워드, 변수, 상수, 연산자의 조합을 포함할 수 있습니다.


◆ Chr 함수

지정된 문자 코드와 관련 있는 문자가 포함된 String 값을 반환합니다.

구문  Chr(charcode)

charcode 인수는 문자를 식별하는 Long 값입니다.

참고

숫자 0부터 31까지는 표준(인쇄가 가능하지 않은) ASCII 코드입니다. 예를 들어, Chr(10)은 라인 피드 문자를 반환합니다. charcode의 표준 범위는 0부터 255까지 입니다. 그러나 DBCS 시스템에서 charcode의 실제 범위는 -32768부터 65536까지 입니다.

메모

ChrB 함수는 String에 포함된 바이트 정보와 함께 사용됩니다. 한 또는 두 바이트 크기일 수 있는 문자가 반환되는 대신에 ChrB 함수는 항상 한 바이트만 반환합니다. ChrW 함수는 Chr 함수와 동일한 작동을 하는 Unicode를 지원하지 않는 플랫폼을 제외하고 Unicode 문자를 포함하는 String 값을 반환합니다.

문자 코드

ANSI 문자 집합과 같이 설정에서 특정 문자를 나타내는 숫자를 의미합니다.

String 데이터 형식

숫자값이 아니라 문자 자체를 나타내는 계속된 문자의 나열로 이루어진 데이터 형식을 의미합니다. String은 머리글자, 숫자, 공백, 구두점을 포함할 수 있습니다. String 데이터 형식은 길이 범위가 0에서 대략 63K인 문자인 고정 길이 문자열을 저장할 수 있으며 길이의 범위가 0에서 대략 20억 문자인 동적 문자열을 저장할 수 있습니다. Visual Basic에서 달러 기호 ($) 형식 선언 문자는 String을 나타냅니다.

Long 데이터 형식

-2,147,483,648에서 2,147,483,647까지의 범위를 갖는 4바이트 정수를 의미합니다. 앰퍼샌드(

&) 형식 선언 문자는 Visual Basic에서 Long으로 나타납니다.

ASCII 문자 집합

ASCII(American Standard Code for Information Interchange) 7비트 문자 집합은 표준 U.S. 키보드에 나타난 문자 및 기호를 나타내는데 사용됩니다. ASCII 문자 집합은 ANSI문자 집합의 처음 128 문자(0 - 127)와 동일합니다.

DBCS

1이나 2바이트를 사용하여 문자를 나타내는 문자 집합을 의미하며 256이상의 문자를 표현할 수 있습니다.

Unicode

국제 표준 기구(ISO)의 표준 문자를 의미합니다. Unicode는 16비트(2바이트)의 코딩법을 사용하여 65,536개의 별개 문자 공백을 허용합니다. Unicode는 구두 기호, 수학적 기호, 장식 활자를 포함하며 앞으로 증가될 표기에 대비한 상당한 여유를 가지고 있습니다.

Chr 함수 예제 다음은 Chr 함수를 사용하여, 지정된 문자 코드에 대한 문자를 구해내는 예제입니다.

   Dim MyChar

   MyChar = Chr(65)      ' A를 반환합니다.

   MyChar = Chr(97)      ' a를 반환합니다.

   MyChar = Chr(62)      ' >를 반환합니다.

   MyChar = Chr(37)     ' %를 반환합니다.


◆ Format 함수

형식 식의 명령대로 구성된 식이 포함된 Variant(String)를 반환합니다.

구문  Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

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 = #17:04:23#

MyDate = #January 27, 1993#

MyStr = Format(Time, "Long Time")     ' 현재 시스템 시간을 자세한 시간 유형으로 정의된 시스템에 반환합니다.

MyStr = Format(Date, "Long Date")     ' 현재 시스템 날짜를 자세한 날짜 유형으로 정의된 시스템에 반환합니다.

MyStr = Format(MyTime, "h:m:s")     ' "17:4:23"을 반환합니다.

MyStr = Format(MyTime, "hh:mm:ss AMPM")      ' "05:04:23 PM"을 반환합니다.

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

날짜 와/또는 시간을 표시. 실제 값의 경우 날짜와 시간을 표시(예: 97-4-3 오후 05:34). 소수 이하 부    분이 없을 경우 날짜만 표시(예: 97-4-3). 정수부가 없을 경우 시간만 표시(예: 오후 05:34). 날짜 표    시는 사용자의 시스템 설정에 따라 결정됨.

사용자 시스템의 자세한 날짜 유형으로 날짜를 표시.

yy 년 m 월 d 일 형식으로 날짜를 표시 (예: 97년 4월 3일)

사용자 시스템의 간단한 날짜 형식으로 날짜 표시.

사용자 시스템의 시간 표시 형식으로 시간을 표시(시, 분, 초 정보 포함).

시와 분, 오전/오후를 이용해 시간을 12 시간 형식으로 표시.

24시간 형식을 이용해 시간을 표시(예: 17:45).

◆ 지정된 숫자 유형(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     시간을 사용자 시스템에서 인식하는 시간 형식으로 정의된 시간 구분자를 이용해서 형식화된 완전한 시간(시, 분, 초            포함)으로 표시. 출력하는 시간이 0:00부터 10:00 사이(오전/오후) 이고 소수 분리 기호 앞 0 옵션이 선택되어 있으면           1시부터 9시 사이의 시간 값 앞에   Ì 붙음. Microsoft Windows에서 시간 형식의 기본 형식은 시:분:초(h:mm:ss).

AM/PM 12-시간 시계를 이용. 시간이 오전인 경우 오전(대문자)이 시간과 함께 표시. 오후 시간인 경우 오후(대문자)가 시간과           함께 표시.

am/pm  12-시간 시계를 이용. 시간이 오전인 경우 오전(소문자)이 시간과 함께 표시. 오후 시간인 경우 오후(소문자)가 시간과           함께 표시.

A/P    12-시간 시계를 이용. 시간이 오전인 경우 A(대문자)가 시간과 함께 표시. 오후 시간인 경우 P(대문자)가 시간과 함께           표시.

a/p     12-시간 시계를 이용. 시간이 오전인 경우 a(소문자)가 시간과 함께 표시. 오후 시간인 경우 p(소문자)가 시간과 함께           표시.

AMPM 12-시간 시계를 이용. 사용자 시스템에서 정의된 대로 오전 문자열을 오전 시간인 경우 표시. 시간이 오후인 경우 오           후 문자열을 사용자 시스템에서 정의된 대로 표시. 오전 오후는 대/소문자 구분이 없으나 표시되는 문자열은 사용자            시스템 설정과 일치하게 나타남.  Microsoft Windows에서는 기본 형식이 오전/오후임.

사용자 정의 날짜/시간 유형 예제

다음은 1958년 12월 7일을 예제로 표시되는 사용자 정의 날짜/시간 형식을 나열한 것입니다.

형식                표시

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     08:50 PM

h:mm:ss a/p      8:50:35 p

h:mm               20:50

h:mm:ss             20:50:35

m/d/yy h:mm       12/7/58 20:50

◆ 사용자 정의 숫자 형식(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 함수)

다음 문자를 이용해 문자열 유형 식을 만들 수 있습니다.

문자

설명

@

 

 

&

 

 

<

>

!

문자 자리표시자. 문자 또는 공백을 표시. 문자열의 유형 식에서 기호(@) 가 나타나는 자리에 문자가 있을 경우 그대로 표시. 그 외의 경우 그 자리에 공백을 표시. 자리표시자는 오른쪽에서 왼쪽으로 채워짐. 단, 형식 문자열에 느낌표(!)가 있을 경우에는 반대로 채워짐.

문자 자리표시자. 문자 표시 또는 아무것도 표시 않음. 문자열에서 엠퍼샌트(&) 기호가 나타나는 자리에 문자가 있을 경우 그대로 표시. 자리표시자가 있으면 그대로 표시; 없을 경우 아무것도 표시 않음. 자리표시자는 오른쪽에서 왼쪽으로 채워짐. 단, 형식 문자열에 느낌표(!)가 있을 경우에는 반대로 채워짐.

강제로 소문자 표시. 모든 문자를 소문자로 표시함.

강제로 대문자 표시. 모든 문자를 대문자로 표시함.

자리표시자 안에서 왼쪽부터 오른쪽으로 채워지게 함. 원칙은 오른쪽에서 왼쪽으로 채워지는 것임.


◆ InputBox 함수

대화 상자 안의 프롬프트를 보여주며, 사용자가 입력하거나 단추 누르기를 기다렸다가 입력란의 내용을 포함하는 문자열을 반환합니다.

구문  InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

InputBox 함수 구문은 다음과 같은 명명된 인수로 되어 있습니다.

구성 요소   설명

prompt     필수. 대화 상자 내의 메시지로 나타나는 문자열 식입니다. prompt의 최대 길이는 약 1024 문자이며, 사용된 문자              의 너비에 따라 다릅니다. prompt 구성이 1줄 이상이면, 캐리지 리턴 문자 (Chr(13)), 라인 피드 문자 (Chr(10)), 캐              리지 리턴 및 라인 피드 문자 (Chr(13) & Chr(10))을 이용하여 줄 구분을 합니다.

Title       선택. 대화 상자의 제목 표시줄에 표현되는 문자열 식입니다. Title 을 생략하면 응용 프로그램 이름이 제목 표시줄              에 나타납니다.

Default     선택. 입력 상자 안에 특별한 내용이 입력되지 않으면 문자열 식은 기본값으로 인식합니다.  Default가 생략되면 입              력 상자는 빈 상태로 나타납니다.

Xpos      선택. 화면 좌측 가장자리로부터 대화 상자의 좌측 가장자리까지의 간격을 표시하는 숫자 식입니다. 만약 xpos가               생략되면, 대화 상자는 수평 중앙에 위치합니다.

Ypos      선택. 화면 상부로부터 대화 상자의 상부까지의 간격을 표시하는 숫자 식입니다. ypos가 생략되면, 대화 상자는 화              면의 1/3 가량 아래 방향으로 치우치고 수직인 상태로 위치합니다.

Helpfile    선택. 도움말 파일을 이용하여 상세한 도움말을 대화 상자에 제공합니다. helpfile을 부여하면, context도 반드시 부              여해야 합니다.

Context    선택. 도움말 작성자가 적절히 작성한 도움말 항목에 부여된 도움말 문 번호를 나타내는 숫자 식입니다. context를              부여하면, helpfile도 반드시 부여해야 합니다.

참고 

helpfile과 context가 같이 부여되면, F1키를 눌러 context에 해당하는 도움말 항목을 볼 수 있습니다. Microsoft Excel과 같은 호스트 프로그램은 대화 상자 내에 Help 단추가 자동 첨가됩니다. [확인] 단추를 누르거나 ENTER를 누르면 InputBox 함수가 입력 상자 안의 내용을 반환합니다. Cancel 단추를 누르면 함수는 길이가 0인 문자열("")을 반환합니다.

메모   최초의 고유 인수 이외에 추가로 지정하려면, 식 내부에 InputBox를 사용해야 합니다. 위치를 나타내는 인수를 생략하려면, 반드시 그에 대응하는 구분 인자 쉼표(,)를 포함해야 합니다.

호스트 응용 프로그램

예를 들어 Microsoft Excel, Microsoft Project 등과 같이 응용 프로그램에 Visual Basic 사용을 지원해 주는 응용 프로그램을 의미합니다.

InputBox 함수 예제

다음은 사용자가 값을 입력할 수 있도록 하는 InputBox 함수의 다양한 사용 방법에 대해서 보여주는 예입니다. 만약 x와 y 위치가 생략되면 대화 상자는 자동적으로 각 축의 가운데 위치로 조정됩니다. 사용자가 확인 단추를 누르거나 ENTER 키를 누르면 변수 MyValue에는 사용자가 입력한 값이 포함됩니다. 사용자가 취소 단추를 누르면 길이가 0인 문자열이 반환됩니다.


Dim Message, Title, Default, MyValue

Message = "Enter a value between 1 and 3"       ' 프롬프트 설정.

Title = "InputBox Demo" ' 제목 설정.

Default = "1"  ' 기본값 설정.

MyValue = InputBox(Message, Title, Default)    ' 메시지 화면 표시, 제목, 기본값.

' Helpfile과 구문을 사용하십시오. 도움말 단추는 자동적으로 추가됩니다.

MyValue = InputBox(Message, Title, , , , "DEMO.HLP", 10)

MyValue = InputBox(Message, Title, Default, 100, 100)   ' 100, 100의 위치에 대화 상자를 표시합니다.


◆ InStr 함수

한 문자열 안에 특정 문자열이 처음으로 발생한 위치를 Variant(Long)값으로 반환합니다.

구문  InStr([start, ]string1, string2[, compare])

InStr 함수 구문은 다음과 같은 인수로 되어 있습니다.

구성 요소

설명

start

 

String1

String2

Compare

선택. 검색 시 시작 위치를 의미하는  숫자 식임. 지정되지 않으면 첫 문자에서 검색이 시작. start 가 Null값을 포함하면 오류가 발생. Compare 값이 지정되면 start 인수는 필수가 됨.

필수. 검색되는 문자열 식.

필수. 찾고자 하는 문자열 식.

선택. 문자열 비교 형식을 지정함. Compare 인수는 0, 1, 2 또는 지정을 안 해도 됨. 0(기본값)으로 지정되면이진 비교가 시행됨. 1로 지정되면 문자 비교(대/소문자 구분)가 시행됨. 2 로 지정되면 사용자 데이터베이스에 포함된 정보에 근거한 비교가 이루어짐(Microsoft Access에 한함). Compare 값이 Null일 경우 오류가 발생함. Compare 값이 지정되지 않을 경우, Option Compare 설정 값이 행해지는 비교 유형을 결정함.

반환값

조건

InStr 반환값

string1 길이는 0

string1이 Null

string2 길이가 0

string2가 Null

string2가 발견되지 않음

string2가 string1 내에서 발견

start > string2

0

Null

start

Null

0

일치된 지점의 위치

0

참고

InStrB 함수는 문자열 내에 포함된 바이트 정보에 이용됩니다. InStrB 함수는 한 문자열 내의 특정 문자열의 첫 발생 문자 지점을 반환하지 않고 바이트 위치를 반환합니다.

문자열 비교

두개의 문자 나열의 비교를 의미합니다. Option Compare를 사용하여 이진 또는 텍스트 비교를 지정합니다.

English-U.S. 에서 이진 비교는 대/소문자 구분을 하지만 텍스트 비교는 대/소문자 구분을 하지 않습니다.

InStr 함수 예제

다음은 InStr 함수를 사용하여 주어진 문자열 내에서 사용자가 지정된 문자열이 최초로 나타나는 지점을 찾아내는 예제입니다.

Dim SearchString, SearchChar, MyPos

SearchString ="XXpXXpXXPXXP"       ' 찾을 문자열.

SearchChar = "P"     ' "P" 찾기.

MyPos = Instr(4, SearchString, SearchChar, 1)       ' 4 위치에서 텍스트 비교 시작. 6을 반환합니다.

MyPos = Instr(1, SearchString, SearchChar, 0)   ' 1 위치에서 이진 비교 시작. 9를 반환합니다.

' 비교는 기본값으로 이진법(마지막 인수는 생략).

MyPos = Instr(SearchString, SearchChar)     ' 9를 반환합니다.

MyPos = Instr(1, SearchString, "W")       ' 0을 반환합니다.


◆ LCase 함수

소문자로 변환된 String 값을 반환합니다.

구문 LCase(string)

string 인수로는 유효한 문자열 식이 사용됩니다. string에 Null값이 포함되면 Null이 반환됩니다.

참고

대문자만 소문자로 변환됩니다. 소문자와 비문자들은 변환되지 않습니다.

LCase 함수 예제

다음은 LCase 함수를 사용하여 주어진 문자열을 소문자로 변환하는 예제입니다.

Dim UpperCase, LowerCase

Uppercase = "Hello World 1234" ' 변환할 문자열.

Lowercase = Lcase(UpperCase)  ' "hello world 1234"를 반환합니다.


◆ Left 함수

문자열 좌측부터 지정된 수 만큼의 문자를 Variant(String)값으로 반환합니다.

구문  Left(string, length)

Left 함수 구문은 다음과 같은 명명된 인수로 되어 있습니다.

구성 요소

설명

string

Length

필수. 좌측의 문자들이 반환되는 문자열 식 string에 Null이 포함되면 Null이 반환됨.

필수. Variant(Long). 반환할 문자의 수를 지정하는 숫자 식. 0일 경우, 길이가 0인 문자열("")이 반환됩니다. String의문자 수와 같거나 클 경우 문자열 전부가 반환됨.

참고

string내의 문자 수를 파악하기 위해서는 Len 함수를 이용합니다.

메모  문자열 내에 포함된 byte정보의 경우 LeftB 함수를 이용합니다. 반환할 문자 수를 지정하는 대신 length 는 바이트 수를 지정합니다.

Left 함수 예제

다음은 Left 함수를 사용하여 문자열의 왼쪽 끝에서부터 지정된 문자 수 만큼의 글자를 반환하는 예제입니다.

Dim AnyString, MyStr

AnyString = "Hello World"      ' 문자열 정의.

MyStr = Left(AnyString, 1)      ' "H"를 반환합니다.

MyStr = Left(AnyString, 7)     ' "Hello W"를 반환합니다.

MyStr = Left(AnyString, 20)    ' "Hello World"를 반환합니다.


◆ Len 함수

문자열 내 문자 수 또는 변수를 저장하는 데 필요한 바이트 수를 Long값으로 반환합니다.

구문  Len(string | varname)

Len 함수 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소

설명

string

Varname 

모든 유효한 문자열 식 string 이 Null 값을 포함하면 Null이 반환됨.

모든 유효한 변수 이름. Varname 이 Null값을 포함하면 Null이 반환됨. Varname이 Variant값이면 Len 함수는 이것을 String 값으로 간주하고 항상 포함하고 있는 문자 수를 반환함.

참고

두 개의 가능한 인수 중에 단 한 개만 지정되어야 합니다. 사용자 정의 형식의 경우 Len함수는 파일로 저장될 때의 크기를 반환합니다.

메모   문자열 내의 바이트 정보의 경우 LenB 함수를 이용합니다. 이 함수는 문자열 내의 문자 수를 반환하지 않고 바이트 수를 반환합니다. 사용자 정의 형식의 경우 LenB 함수는 메모리 적재 크기를 반환합니다.

(수형의 내부 요소별로 padding도 포함한 크기).

참고  Len 함수는 사용자 정의 데이터 형식 내의 가변 길이 문자열에 대해서는 저장하는 데 실제로 필요한 바이트 수를 제대로 파악하지 못할 수 있습니다.

사용자 정의 형식

Type 문을 사용하여 정의된 데이터 형식을 의미합니다. 사용자 정의 데이터 형식은 하나 이상의 데이터 형식 요소를 포함할 수 있습니다. 사용자 정의 및 다른 데이터 형식의 배열은 Dim 문을 사용하여 만들어집니다. 형식의 배열은 사용자 정의 형식 안에 포함될 수 있습니다.

데이터 형식

보유할 수 있는 데이터의 종류를 결정하는 변수의 특성을 의미합니다. 데이터 형식은 Byte, Boolean, Integer, Long, Currency, Decimal, Single, Double, Date, String, Object, Variant (기본값), 그리고 개체의 특정 형식 뿐만 아니라 사용자 정의 형식을 포함합니다.

Len 함수 예제

다음은 Len 함수를 사용하여 주어진 문자열이나 변수를 저장하는데 필요한 바이트 수를 구해내는 예제입니다. CustomerRecord를 정의하는데 사용하는 Type...End Type 블럭을 클래스 모듈에서 정의할 경우에는 반드시 맨 앞에 Private 키워드를 먼저 선언해 주어야 하고, 그냥 일반 모듈에서 사용할 경우에는 Type 블럭을 Public으로 선언할 수도 있습니다.

Type CustomerRecord  ' 사용자 정의 형식 정의.

    ID As Integer    ' 이 정의를

    Name As String * 10에 위치시킴   ' 표준 모듈.

    Address As String * 30

End Type

Dim Customer As CustomerRecord      ' 변수 선언.

Dim MyInt As Integer, MyCur As Currency

Dim MyString, MyLen

MyString = "Hello World"      ' 변수 초기화.

MyLen = Len(MyInt)         ' 2를 반환합니다.

MyLen = Len(Customer)       ' 42를 반환합니다.

MyLen = Len(MyString)       ' 11을 반환합니다.

MyLen = Len(MyCur)        ' 8을 반환합니다.


◆ LTrim, RTrim, Trim 함수

지정된 문자열의 좌측에 공백이 없는(LTrim), 우측에 공백이 없는(RTrim), 또는 양쪽 끝에 공백이 없는(Trim) 문자열을 Variant(String)값으로 반환합니다.

구문  LTrim(string)

RTrim(string)

Trim(string)

string 인수로는 모든 유효한 문자열 식이 사용됩니다. string 이 Null 값을 포함하면 Null이 반환됩니다.

LTrim, RTrim, Trim 함수 예제

다음은 문자열 변수로부터 각각 앞쪽 공백과 뒤쪽 공백을 삭제하기 위해 LTrim과 RTrim 함수를 사용하는 예제입니다. 양쪽 공백을 모두 삭제하기 위해서는 Trim 함수를 단독으로 사용합니다.

Dim MyString, TrimString

MyString = "  <-Trim->  "    ' 문자열 초기화.

TrimString = LTrim(MyString)  ' TrimString = "<-Trim->  ".

TrimString = RTrim(MyString) ' TrimString = "  <-Trim->".

TrimString = LTrim(RTrim(MyString))   ' TrimString = "<-Trim->".

' Trim 함수를 사용하여 같은 결과를 성취.

TrimString = Trim(MyString)   ' TrimString = "<-Trim->".


◆ Mid 함수

한 문자열에서 지정된 수의 문자들을 Variant(String) 값으로 반환합니다.

구문  Mid(string, start[, length])

Mid 함수 구문은 다음과 같은  명명된 인수로 구성되어 있습니다.

구성 요소

설명

string   

Start

 

Length  

필수. 문자들이 반환되는 문자열 식. string 에 Null이 포함되면 Null 이 반환됨.

필수. Long. string에서 취할 부분이 시작하는 문자 위치. start 값이 string 내 문자 수보다 크면 Mid 함수는 길이가 0인 문자열("")을 반환함.

선택. Variant(Long). 반환할 문자 수. 지정되지 않거나 글에서 length 보다 문자 수가 적으면

(start 의 문자들 포함) start 위치부터 문자열 끝까지 모든 문자들이 반환됨.

참고

string내의 문자 수를 파악하기 위해서는 Len 함수를 이용합니다.

메모 문자열 내의 바이트 정보는 MidB 함수를 이용합니다. 인수는 문자 수를 지정하는 것이 아니라 바이트 수를 지정합니다.

Mid 함수 예제

다음은 Mid 함수를 사용하여 문자열로부터 지정된 수 만큼의 문자를  따내는 예제입니다.

Dim MyString, FirstWord, LastWord, MidWords

MyString = "Mid Function Demo"       ' 텍스트 문자열 작성합니다.

FirstWord = Mid(MyString, 1, 3)          ' "Mid"를 반환합니다.

LastWord = Mid(MyString, 14, 4)          ' "Demo"를 반환합니다.

MidWords = Mid(MyString, 5)          ' "Function Demo"를 반환합니다.


◆ MsgBox 함수

대화상자 안에 메시지를 보여주며, 사용자가 단추를 누를때까지 기다리다가 사용자가 누른단추가 지시하는 Integer을 반환합니다.

구문 MsgBox(prompt[, buttons] [, title] [, helpfile, context])

명명된 인수

개체 라이브러리에서 먼저 정의된 이름을 가진 인수를 의미합니다. 구문에서 요구하는 지정된 순서의 각 인수 값을 제공하는 대신에 사용자는 명명된 인수를 사용하여 임의의 순서로 값을 할당할 수 있습니다. 예를 들면 다음과 같이 세 개의 인수를 받는 방법을 제안합니다.

DoSomeThing namedarg1, namedarg2, namedarg3

값을 명명된 인수에 할당함으로써 사용자는 다음의 문을 사용할 수 있습니다.

DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20

명명된 인수는 구문의 정상 배치 순서로 나타내지 않아도 된다는 것을 주의하십시오.

MsgBox 함수 구문은 다음과 같은 고유 인수로 되어 있습니다.

구성 요소

설 명

prompt

 

 

Buttons

 

Title

 

Helpfile

 

Context

필수. 대화 상자 내의 메시지로 나타나는 문자열 식입니다. prompt의 최대 길이는 약 1024 문자이며, 사용된 문자의 너비에 따라 다릅니다. prompt 구성이 1줄 이상이면, 캐리지 리턴 문자 (Chr(13)), 라인 피드 문자 (Chr(1선택. 단추의 수와 형태와 사용할 아이콘의 형태, 기초 단추의 정체 및 메시지 상자의 양식을 지정하는 값의 합을 나타내는 숫자 식입니다. 생략 되었을 때 buttons의 기본값은 0 입니다.0)), 캐리지 리턴 및 라인 피드 문자 (Chr(13) & Chr(10))를 이용하여 줄 구분을 합니다.

선택. 대화 상자의 제목 표시줄에 나타나는 문자열 식입니다. Title을 생략하면 응용 프로그램의 이름은 제목 표시줄에 나타납니다.

선택. 도움말 파일을 이용하여 상세한 도움말을 대화 상자에 제공합니다. helpfile이 부여되면, context도 반드시 부여되어야 합니다.

선택. 도움말 작성자가 적절히 작성한 도움말 항목에 부여된 도움말 문 번호를 나타내는 숫자 식입니다. context가 부여되면,  helpfile도 반드시 부여되어야 합니다.

설정  buttons 인수는 다음과 같이 설정되어 있습니다.

상수

설 명

vbOKOnly

VbOKCancel

VbAbortRetryIgnore

VbYesNoCancel

VbYesNo 

VbRetryCancel

VbCritical

VbQuestion

VbExclamation

VbInformation

VbDefaultButton1

VbDefaultButton2

VbDefaultButton3

VbDefaultButton4

VbApplicationModal

 

VbSystemModal

VbMsgBoxHelpButton

VbMsgBoxSetForeground

VbMsgBoxRight

VbMsgBoxRtlReading

0

1

2

3

 4

5

16

32

48

64

0

256

512

768

0

 

4096

16384

65536

524288

1048576

[확인] 단추만 나타냅니다.

[확인] 와 [취소]  단추를 나타냅니다.

[중단], [재시도], 및 [무시] 단추를 나타냅니다.

[예], [아니오], 및 [취소] 단추를 나타냅니다.

[예] 및 [아니오] 단추를 나타냅니다.

[재시도] 및 [취소] 단추를 나타냅니다.

[중대 메시지] 아이콘을 나타냅니다.

[질의 경고] 아이콘을 나타냅니다.

[메시지 경고] 아이콘을 나타냅니다.

[메시지 정보] 아이콘을 나타냅니다. 

첫째 단추가 기본값입니다.

둘째 단추가 기본값입니다

세째 단추가 기본값입니다

넷째 단추가 기본값입니다

응용 프로그램 규칙; 사용자는 현재 사용 중인 프로그램 내에서 작업을 계속하기 전에 반드시 메시지 상자에 응답해야 합니다.

시스템 규칙; 사용자가 메시지 상자에 응답할 때까지 모든 프로그램들은 정지됩니다.

메시지 상자에 도움말 단추를 추가합니다.

메시지 상자 창을 전경 창으로 지정합니다.

문자열을 오른쪽으로 정렬합니다.

문자열을 위에서 아래로, 오른쪽에서 왼쪽으로 읽을 수 있도록 지정합니다.

첫 그룹의 숫자(0 )들은 대화 상자 안에 나타난 단추들의 수와 형태를 보여줍니다. 둘째 그룹의 숫자(16, 32, 48, 64)들은 아이콘의 형태를, 세째 그룹(0, 256, 512)은 어느 단추가 기본값 인지를 정해주며, 넷째 그룹(0, 4096)은 메시지 상자의 폼을 결정합니다. buttons 인수에 대한 최종 값을 산출할 때는 각 그룹에서 한 가지 값만을 사용합니다.

메모  이와 같은 상수는 응용 프로그램용 Visual Basic에 의해 결정됩니다. 결국, 이름은 실제 값이 있는 코드 어디에서나 사용될 수 있습니다.

반환 값

상수

 

설명

vbOK

vbCancel

vbAbort 

vbRetry 

vbIgnore 

vbYes  

vbNo   

1

2

3

4

5

6

7

[확인]

[취소]

[중단]

[재시도]

[무시]

[예]

[아니오]

참고

helpfile과 context가 같이 부여되면, F1키를 눌러 context에 해당하는 도움말 항목을 볼 수 있습니다. Microsoft Excel과 같은 호스트 프로그램은 대화 상자 내에 [도움말] 단추가 자동 첨가됩니다.  대화 상자에 [취소] 단추가 나타났을 때, ESC키를 누르면 [취소] 단추를 누른 것과 같은 결과가 됩니다. 대화 상자에 [도움말] 단추가 나타났을 때는, 대화 상자에 상세한 도움말이 제공됩니다. 그러나 다른 단추 중 하나를 누를 때까지는 값을 반환하지 않습니다.

메모 최초의 고유 인수 이외에 추가로 지정하려면, 식 내부에 MsgBox를 사용해야 합니다. 위치를 나타내는 인수를 생략하려면, 반드시 그에 대응하는 구분 기호 쉼표(,)를 포함해야 합니다.

MsgBox 함수 예제

다음은 MsgBox 함수를 사용하여 예와 아니오 단추를 가진 대화 상자에 중대한 오류 메시지를 표시하는 예제입니다. 아니오 단추가 기본 응답으로 지정됩니다. MsgBox 함수의 반환값은 사용자가 선택한 단추에 따라 결정됩니다. 이 예에서 DEMO.HLP는 도움말 항목 번호가 1000인 도움말을 가진 도움말 파일로 가정합니다.

Dim Msg, Style, Title, Help, Ctxt, Response, MyString

Msg = "계속하시겠습니까?"     ' 기본 메시지.

Style = vbYesNo + vbCritical + vbDefaultButton2  ' Define buttons.

Title = "데모 MsgBox" ' 기본 제목.

Help = "DEMO.HLP"   ' 기본 도움말 파일.

Ctxt = 1000   ' 기본 항목

             ' 구문.

             ' 메시지 화면 표시.

Response = MsgBox(Msg, Style, Title, Help, Ctxt)

If Response = vbYes Then      ' 사용자가 예를 선택.

     MyString = "예"  ' 어떤 동작을 수행.


Else ' 사용자가 아니오를 선택.

     MyString = "아니오"      ' 어떤 동작을 수행.

End If

<추가 MsgBox 상수>

MsgBox 함수는 다음과 같은 새 상수를 지원합니다.

VbMsgBoxHelpButton

VbMsgBoxSetForeground

VbMsgBoxRight  VbMsgBoxRtlReading

16384

65536

 524288

1048576

메시지 상자에 도움말 단추를 추가합니다.

메시지 상자 창을 포그라운드 창으로 지정합니다.

텍스트를 오른쪽으로 정렬합니다.

Hebrew와 Arabic 시스템에서 텍스트를 오른쪽에서 왼쪽으로 읽게 배치하도록 지정합니다.


◆ Right 함수   문자열의 우측으로부터 지정된 수의 문자를 Variant(String)값으로 반환합니다.

구문  Right(string, length)

Right 함수 구문은 다음과 같은  명명된 인수로 되어 있습니다.

구성 요소

설명

string

Length

필수. 가장 우측에 있는 문자가 반환되는 문자열 식. string에 Null값이 있으면 Null이 반환됨.

필수; Variant(Long). 반환할 문자 수를 지정하는 숫자 식 0이면 길이가 0인 문자열("")이 반환됨. string내의 문자 수보다 크거나 같으면 문자열 전부가 반환됨.

참고   string 내 문자 수를 파악하려면 Len 함수를 이용합니다.

메모   문자열 내의 바이트 정보는 RightB 함수를 이용합니다. length는 반환할 문자 수가 아니라 바이트 수를 지정합니다.

Right 함수 예제

다음은 Right 함수를 사용하여 주어진 문자열의 맨 오른쪽에서부터 지정된 문자 수 만큼을 반환하는 예제입니다.

Dim AnyString, MyStr

AnyString = "Hello World"     ' 문자열 정의.

MyStr = Right(AnyString, 1)    ' "d"를 반환합니다.

MyStr = Right(AnyString, 6)    ' " World"를 반환합니다.

MyStr = Right(AnyString, 20)   ' "Hello World"를 반환합니다.


◆ Space 함수

지정된 수의 공백으로 구성된 Variant(String)값을 반환합니다.

구문  Space(number)

number 인수는 문자열 내에서 원하는 공백의 수입니다.

참고 

Space 함수는 출력을 형식화 하거나 고정된 크기의 문자열을 지우는 데 유용합니다.

Space 함수 예제

다음은 Space 함수를 사용하여 지정된 수 만큼의 공백 문자로  이루어진 문자열을 반환하는 예제입니다.

Dim MyString

MyString = Space(10)     ' 10 공백을 가진 문자열을 반환합니다.

MyString = "Hello" & Space(10) & "World"    ' 두 문자열 사이에 10 공백을 삽입.


◆ Spc 함수

Print # 문이나 Print 메서드와 함께 사용되어 출력 위치를 정합니다.

구문  Spc(n)

필수 항목인 n 인수는 목록에 있는 다음 식을 표시 또는 인쇄하기 전에 삽입할 공백 수입니다.

참고

n이 출력 줄 너비보다 작으면 인쇄된 공백 수 바로 뒤에 다음 인쇄 위치가 따라 나옵니다. n이 출력 줄 너비보다 크면 Spc는 아래 공식을 사용하여 다음 인쇄 위치를 계산합니다.

 currentprintposition + (n Mod width)

예를 들어 현재 인쇄 위치가 24, 출력 줄 너비가 80이고, Spc(90)이라고  지정하면 다음 인쇄는 위치 34 (현재 인쇄 위치 + 90/80의 나머지)에서 시작될 것입니다. 현재 인쇄 위치와 출력 줄 너비 사이의 차이가 n (또는 n Mod width)보다 작으면 Spc 함수는 다음 줄이 시작하는 곳으로 건너 뛰어 n - (width - currentprintposition)만큼 공백을 만듭니다.

주의   도표 열이 넓은 문자를 수용할 만큼 넓은지 확인하도록 하십시오.

비례적으로 공백이 주어지는 글꼴과 함께 Print 메서드를 사용할 때, Spc 함수로 인쇄되는 공백 문자들의 너비는 항상 선택한 글꼴의 포인트 크기로 된 모든 문자 너비의 평균이 됩니다. 그러나 인쇄되는 문자 수와 그 문자들이 차지하는 고정 너비 열 수 사이에는 아무런 관계가 없습니다. 예를 들어 대문자 W는 하나 이상의 고정 너비 열을 차지하고 소문자 I 는 하나 이하의 고정 너비 열을 차지합니다.

Spc 함수 예제

다음은 파일과 [디버그] 창에서 출력의 위치를 지정하기 위해 Spc 함수를 사용하는 예제입니다.

' Spc 함수는 Print # 문과 함께 사용할 수 있습니다.

Open "TESTFILE" For Output As #1     ' 출력을 위해 파일을 엽니다 .

Print #1, "10 spaces between here"; Spc(10); "and here."

Close #1      ' 파일을 닫습니다.

다음 문은 Print 메서드를 사용해 30개의 공백 다음에 문자열을 [디버그] 창에 출력시킵니다.

Debug.Print Spc(30); "Thirty spaces later..."



◆ Str 함수

숫자의 Variant(String)값을 반환합니다.

구문  Str(number)

number 인수는 임의의 유효한 숫자 식을 값으로 하는 Long값입니다.

참고

숫자들이 문자열로 변환되면 number의 부호를 위해 문자열 앞쪽에 한 개의 공간이 예약됩니다. number 가 양수이면 반환되는 문자열은 앞쪽에 공간이 포함되고 양수 부호를 암시합니다.

숫자 값을 날짜, 시간, 화폐 단위나 다른 사용자 정의 형식으로 형식화하려면 Format 함수를 이용합니다. Str 함수와는 달리, Format 함수는 number의 부호를 위한 앞쪽 공간을 포함하지 않습니다.

메모

Str 함수는 마침표(.)만 유효한 소수점 분리 기호로 인식합니다. 다른 소수점 분리 기호가 사용된다면(예: 다국적 응용 프로그램) CStr 함수를 이용해서 숫자를 문자열로 변환합니다.

Str 함수 예제

다음은 Str 함수를 사용하여 숫자 형식의 데이터를 문자열 형식의 데이터로 변환하는 예제입니다. 숫자를 문자열로 변환할 때 앞쪽 공백은 부호 표시용으로 보존됩니다.

Dim MyString

MyString = Str(459)    ' " 459"를 반환합니다.

MyString = Str(-459.65) ' "-459.65"를 반환합니다.

MyString = Str(459.001) ' " 459.001"를 반환합니다.


◆ StrComp 함수

문자열 비교의 결과를 의미하는 Variant(Integer)값을 반환합니다.

구문  StrComp(string1, string2[, compare])

StrComp 함수 구문은 다음과 같은 명명된 인수로 구성됩니다.

구성 요소

설명

string1

string2

Compare

필수. 모든 유효한 문자열 식.

필수. 모든 유효한 문자열 식.

선택. 문자열 비교의 유형을 지정함. Compare 인수 는 0, 1, 2 로 지정되거나 또는 생략될 수 있음. 0(기본값)으로 지정되면 이진 비교가 수행됨. 1로 지정되면 문자별 비교가 이루어짐. 2 로 지정되면 사용자 데이터베이스에 기록된 정보에 근거한 비교가 수행됨(Microsoft Access사용자에 한함). compare 값이 Null이면 오류가 발생함. compare 값이 지정되지 않으면 Option Compare 설정 값에 따라 비교 형식이 결정됨.

반환값

StrComp 함수는 다음과 같은 반환값으로 되어있습니다.

다음 경우

StrComp 반환값

string1이 string2 보다 적으면

string1이string2와 같으면  

string1이string2보다 크면  

string1 또는 string2 이 Null이면

-1

0

1

Null

StrComp 함수 예제

다음은 StrComp 함수를 사용하여 문자열과 문자열을 비교하는 예입니다. 세 번째 인수가 1이라면 문자 비교가 수행되고, 세 번째 인수가 0이거나 생략되면 이진 비교가 수행됩니다.

Dim MyStr1, MyStr2, MyComp

MyStr1 = "ABCD": MyStr2 = "abcd"      ' 변수 정의.

MyComp = StrComp(MyStr1, MyStr2, 1)  ' 0을 반환합니다.

MyComp = StrComp(MyStr1, MyStr2, 0)  ' -1을 반환합니다.

MyComp = StrComp(MyStr2, MyStr1)     ' 1을 반환합니다.


◆ StrConv 함수

지정된 대로 변환된 Variant(String)값을 반환합니다.

구문  StrConv(string, conversion)

StrConv 함수 구문은 다음과 같은 명명된 인수로 구성됩니다.

구성 요소

설명

string

Conversion

필수. 변환될 문자열 식.

필수; Integer. 수행될 변환 형식을 지정하는 값들의 합.

설정

conversion 인수 설정은 다음과 같습니다. (* 극동 지역에 해당.  ** 일본에만 해당)

상수

설명

vbUpperCase

VbLowerCase

VbProperCase

VbWide*     

VbNarrow*

VbKatakana**

VbHiragana**

VbUnicode

VbFromUnicode

1   

2   

3   

4*   

8*   

16** 

32** 

64   

128  

문자열을 대문자로 변환.

문자열을 소문자로 변환.

문자열 내 모든 단어의 첫 글자를 대문자로 변환.

1바이트 문자를 2바이트 문자로 변환.

2바이트 문자를 1바이트 문자로 변환.

일본 히라가나 문자를 가다가나 문자로 변환.

일본 가다가나 문자를 히라가나 문자로 변환.

문자열 값을 시스템의 기본 코드  페이지를 통해 Unicode로 변환.

Unicode 문자열을 시스템의 기본 코드 페이지로 변환.

메모

이 상수들은 응용 프로그램을 위한 Visual Basic에서 지정되어 있습니다. 따라서 사용자의 코드 내 어디서나 사용될 수 있습니다. 상호 배타적인 경우(예: vbUnicode + vbFromUnicode) 만 아니면 대부분 통합될 수 있습니다(예: vbUpperCase + vbWide). vbWide, vbNarrow, vbKatakana, vbHiragana 상수들은 그들이 적용될 수 없는 로케일에서 사용되면 런타임 오류가 발생합니다.

다음은 적절한 캐싱을 위해 유효한 단어 구분자들입니다:

Null(Chr$(0)), 수평 탭(Chr$(9)), 라인 피드(Chr$(10)), 수직 탭(Chr$(11)), 폼 피드(Chr$(12)), 캐리지 리턴(Chr$(13)), 공백(SBCS) (Chr$(32)). 공백의 실제 값은 나라별로 DBCS를 위해 다릅니다.


◆ String 함수

지정된 길이의 반복되는 문자열을 Variant(String)값으로 반환합니다.

구문  String(number, character)

String 함수 구문은 다음과 같은  명명된 인수로 구성됩니다.

구성 요소

설명

number

Character

필수; Long 반환되는 문자열의 길이. number에 Null 값이 존재하면 Null이 반환됩니다.

필수; Variant. 문자를 지정하는 문자 코드나 반환 문자열을 구성하는 첫 문자로 사용되는 문자열 식. character에 Null, 값이 존재하면 Null이 반환됩니다.

참고 255보다 큰 수를 character값으로  지정하면 String 함수는 다음 공식을 이용해서 그 수를 유효한 문자 코드로 변환합니다:

   character Mod 256

String 함수 예제

다음은 String 함수를 사용하여 특정 문자가 지정된 길이만큼 반복되는 하나의 문자열을 만드는 예제입니다.

Dim MyString

MyString = String(5, "*")      ' "*****"을 반환합니다.

MyString = String(5, 42)       ' "*****"을 반환합니다.

MyString = String(10, "ABC")  ' "AAAAAAAAAA"를 반환합니다.


◆ Tab 함수

Print # 문이나 Print 메서드와 함께 사용되어 출력 위치를 정합니다.

구문  Tab[(n)]

선택 항목인 n 인수에는 목록에 있는 다음 식을 표시 또는 인쇄하기 전에 이동할 열 수를 사용합니다. 인수가 생략되면 Tab은 다음 인쇄 영역이 시작하는 곳으로 삽입 포인트를 옮깁니다. , 기호가 십진 구분자로 사용되는 로케일에서는 콤마 기호 대신 Tab을 사용할 수 있습니다.

참고

현재 행의 현재 인쇄 위치가 n보다 크면 Tab은 다음 출력 행의 n번째 열로 건너 뜁니다. n이 1보다 작으면 Tab은 인쇄 위치를 1로 옮깁니다. n이 출력 행의 너비보다 크면 Tab은 아래 공식을 사용하여 다음 출력 위치를 계산합니다.

   n Mod width

예를 들어 width가 80 인데 Tab(90)을 지정하면, 열 10 (90/80의 나머지)에서 다음 인쇄를 시작할 것입니다. n이 현재 인쇄 위치보다 작으면 다음 행에 있는 계산된 인쇄 위치에서 인쇄하기 시작합니다. 계산된 인쇄 위치가 현재 인쇄 위치보다 크면 같은 행에 있는 계산된 인쇄 위치에서 인쇄하기 시작합니다.

출력 행에서 맨 왼쪽 인쇄 위치는 항상 1입니다. Print # 문으로 파일에 인쇄할 때 맨 오른쪽 인쇄 위치는 출력 파일의 현재 너비가 됩니다. 그 너비는 Width # 문으로 설정할 수 있습니다.

주의 도표 열이 넓은 문자를 수용할 만큼 충분히 넓은지 확인하도록 하십시오.

Print 메서드와 함께 Tab 함수를 사용할 때 인쇄 모양은 고정 너비 열로 일정하게 나누어 집니다. 각 열의 너비는 선택한 글꼴의 포인트 크기로 된 모든 문자 너비의 평균입니다. 그러나 인쇄되는 문자 수와 그 문자들이 차지하는 고정 너비 열 수 사이에는 아무런 관계가 없습니다. 예를 들어 대문자 W는 하나 이상의 고정 너비 열을 차지하고, 소문자 i는 하나 이하의 고정 너비 열을 차지합니다.

Tab 함수 예제

다음은 파일과 [디버그] 창에서 출력의 위치를 지정하기 위해 Tab 함수를 사용하는 예제입니다.

' Tab 함수는 Print # 문과 함께 사용할 수 있습니다.

Open "TESTFILE" For Output As #1    ' 출력을 위해 파일을 엽니다.

Print #1, "Hello"; Tab(20); "World." ' 20번째 .

Print #1, "Hello"; Tab; "World"   ' If the argument is omitted, cursor is moved to the next print zone.

Close #1     ' Close file.

Tab 함수 역시 Print 메서드와 함께 사용합니다. 다음 문은 10번째 열부터 문자열을 출력합니다.

Debug.Print Tab(10); "10 columns from start."


◆ UCase 함수

지정된 문자열을 대문자로 변환해서 Variant(String) 값으로 반환합니다.

구문  UCase(string)

string 인수 로는 모든 유효한 문자열 식을 사용할 수 있습니다. string에 Null이 존재하면 Null 값이 반환됩니다.

참고

소문자만 대문자로 변환됩니다. 모든 대문자와 비문자 글자들은 변환되지 않습니다.

UCase 함수 예제

다음은 UCase 함수를 사용하여 하나의 문자열을 모두 대문자로 변환하는 예제입니다.

Dim LowerCase, UpperCase

LowerCase = "Hello World 1234"    ' 변환할 문자열.

UpperCase = UCase(LowerCase)   ' "HELLO WORLD 1234"를 반환합니다.


◆ Val 함수

문자열 내에 포함된 숫자를 적절한 형식의 숫자 값으로 반환합니다.

구문 Val(string)

필수 항목인 string 인수는 적절한 문자열 식이어야 합니다.

참고 

숫자값으로 인식할 수 없는 문자열을 만나는 순간 Val 함수는 해당되는 첫 문자에서부터 읽기를 중단합니다. 달러나 쉼표와 같은 문자나 부호는 숫자 값으로 인식되기때문에 제외됩니다. 그러나 &O(8진수)와 &H(16진수)와 같은 문자는 인식할 수 있으며, 공백, 탭, 라인 피드와 같은 문자는 인수에서 제외한 후 처리합니다.

다음의 예는 1615198값을 반환합니다.

   Val(" 1615 198th Street N.E.")

다음의 경우에, Val 함수는 16진수 값을 십진수 값인 -1로 반환합니다.

   Val("&HFFFF")

메모   Val 함수는 마침표(.)만을 유효한 십진수 구분자로 인식합니다. 다양한 십진수 구분자를 사용할 때, 예를 들면 다국적 응용 프로그램 개발과 같은 경우, 문자열을 숫자로 변환하기 위하여 CDbl 함수를 사용합니다.

Val 함수 예제

이 예제는 Val 함수를 사용하여 문자열에 포함된 숫자를 반환합니다.

Dim MyValue

MyValue = Val("2457")          ' 2457을 반환합니다.

MyValue = Val(" 2 45 7")      ' 2457을 반환합니다.

MyValue = Val("24 and 57")    ' 24를 반환합니다.






●산술계산관련함수


◆ Abs 함수

전달된 수치의 절대값을 지정하여 동일한 형식으로 반환합니다.

구문  Abs(number)

필수 항목인 number 인수에는 유효한 숫자 식을 사용합니다. 만약 number가 Null 값을 가지면 Null 값을 반환하며, 초기화되지 않은 변수이면 0을 반환합니다.

참고

절대값이란 부호를 떼어낸 값을 말합니다. 예를 들어, ABS(-1)와 ABS(1)는 모두 1을 반환합니다.

Abs 함수 예제

다음은 숫자의 절대값을 계산하기 위해 Abs 함수를 사용하는 예제입니다.

Dim MyNumber

MyNumber = Abs(50.3) ' 50.3을 반환합니다.

MyNumber = Abs(-50.3)       ' 50.3을 반환합니다.

인수

프로시저에 전달되는 상수, 변수, 또는 식을 의미합니다.

숫자 식

숫자로 평가될 수 있는 식을 의미합니다. 식의 요소는 결과적으로 숫자가 되는 키워드, 변수, 상수, 연산자의 조합을 포함할 수 있습니다.

Null

변수가 무효 데이터를 포함한다는 것을  지시하는 값을 의미합니다. Null을 포함하는 식 사이에서 변수나 작동에 Null을 명시적으로 설정하면 그 결과 Null이 됩니다.

변수

프로그램 실행 중 수정될 수 있는 데이터를 포함할 수 있는 명명된 저장 위치를 의미합니다. 각 변수는 그것의 범위 안에서 유일하게 식별하는 이름을 가집니다. 데이터 형식은 지정될 수도 있고 안될 수도 있습니다.

변수 이름은 영문으로 시작해야 하고, 같은 범위 안에서 유일해야 하며, 255 문자보다 적어야 되며, 포함 구간이나 형식 선언 문자를 포함할 수 없습니다.


◆ Cos 함수

특정한 각의 코사인 값을 지정하는 Double을 반환합니다.

구문  Cos(number)

필수 항목인 number 인수에는 Double이나 유효한 숫자 식을 사용합니다.

참고 

Cos 함수는 각을 취하여 직각 삼각형의 두 변의 길이의 비율을 나타냅니다. 여기서의 비율이란 빗변의 길이를 각과 인접한 변의 길이로 나눈 값을 말합니다. 결과값의 범위는 - 1에서 1 사이입니다.

각도를 라디안으로 환산하려면, 각도에 pi/180를 곱합니다. 라디안을 각도로 환산하려면 라디안에 180/pi을 곱합니다.

Cos 함수 예제 

다음은 각의 코사인 값을 반환하기 위해 Cos 함수를 사용하는 예제입니다.

   Dim MyAngle, MySecant

   MyAngle = 1.3      ‘라디안값의 각을 정의합니다.

   MySecant = 1 / Cos(MyAngle)  '세컨트(secant)를 계산합니다.


◆ Exp 함수

e (자연로그의 밑)의 거듭 제곱수를 지정하는 Double을 반환합니다.

구문  Exp(number)

필수 항목인 number 인수에는 Double이나 유효한 숫자 식을 사용합니다.

참고

number 값이 709.782712893보다 크면 오류입니다. 상수 e의 값은 약 2.718282입니다.

주의   Exp 함수는 Log 함수의 여함수이며 역로그함수(antilogarithm)라 부르기도 합니다.

Exp 함수 예제

다음은 자연 로그 밑수 e의 승수를 반환하기 위해 Exp 함수를 사용하는 예제입니다.

   Dim MyAngle, MyHSin

   MyAngle = 1.3       ' 라디안 값의 각을 정의합니다.

   MyHSin = (Exp(MyAngle) - Exp(-1 * MyAngle)) / 2      ' 쌍곡선 사인 값을 계산합니다.


◆ Int, Fix 함수

특정 숫자의 정수 부분을 전달된 형식의 값으로 반환합니다.

구문

  Int(number)

  Fix(number)

number 인수는 Double 또는 임의의 숫자 식이어야 합니다. 만약 number가 Null값을 가지면, Null이 반환됩니다.

참고

Int와 Fix는 모두 number의 분수 부분을 없애고 정수 부분만을 반환합니다.

Int와 Fix의 차이점은, number가 음수이면, Int는 number보다 작거나 같은 최초의 음의 정수를 반환하는 반면에, Fix는 number보다 크거나 같은 최초의 음의 정수를 반환합니다. 예를 들어, Int는 -8.4를 -9로 환산하지만, Fix는 -8.4를 -8로 환산합니다.

Fix(number)는 아래와 동격입니다:

Sgn(number) * Int(Abs(number))

Int 함수, Fix 함수 예제

다음 예제에서는 Int와 Fix 함수가 숫자의 정수 부분을 반환하는 방법을 보여줍니다. 음수 인수의 경우에는 Int 함수는 그 수보다 작거나 같은 첫번째 음수를 반환하고, Fix 함수는 그 수보다 크거나 같은 첫번째 음수를 반환합니다.

Dim MyNumber

MyNumber = Int(99.8)    ' 99를 반환합니다.

MyNumber = Fix(99.2)   ' 99를 반환합니다.

MyNumber = Int(-99.8)   ' -100를 반환합니다.

MyNumber = Fix(-99.8)   ' -99를 반환합니다.

MyNumber = Int(-99.2)   ' -100를 반환합니다.

MyNumber = Fix(-99.2)   ' -99를 반환합니다.


◆ Hex 함수

숫자의 16진수 값을 String 값으로 반환합니다.

구문  Hex(number)

number 인수 로는 유효한 숫자 식 또는 문자열 식이 사용됩니다.

참고

number가 정수가 아닐 경우 계산되기 전에 가까운 정수로 반올림됩니다.

Number 값      반환되는 Hex값

Null             Null

Empty           영(0)

임의의 수       최대 8자리의 16진수 문자

적절한 범위 내의 숫자 앞에 &H를 붙이면 직접 16진수 숫자를 지정할 수 있습니다. 예를 들어, &H10 은 십진수로 16을 16진수로 표현한 것입니다.

String 데이터 형식

숫자값이 아니라 문자 자체를 나타내는 계속된 문자의 나열로 이루어진 데이터 형식을 의미합니다. String은 머리글자, 숫자, 공백, 구두점을 포함할 수 있습니다. String 데이터 형식은 길이 범위가 0에서 대략 63K인 문자인 고정 길이 문자열을 저장할 수 있으며 길이의 범위가 0에서 대략 20억 문자인 동적 문자열을 저장할 수 있습니다. Visual Basic에서 달러 기호 ($) 형식 선언 문자는 String을 나타냅니다.

Null

변수가 무효 데이터를 포함한다는 것을  지시하는 값을 의미합니다. Null을 포함하는 식 사이에서 변수나 작동에 Null을 명시적으로 설정하면 그 결과 Null이 됩니다.

Empty

Variant 변수의 값이 초기화되지 않았다는 것을 지시하는 것입니다. Empty 변수는 숫자 구문에서 0으로, 문자열 구문에서 길이가 0인 문자열 ("")로 표현됩니다.

Hex 함수 예제  다음은 Hex 함수를 사용하여 지정된 숫자에 대한 16진수 값을 구하는 예제입니다.

Dim MyHex

MyHex = Hex(5)      ' 5를 반환합니다.

MyHex = Hex(10)     ' A를 반환합니다.

MyHex = Hex(459)    ' 1CB를 반환합니다.

◆ IIf 함수

을 평가한 결과에 따라 두 개의 조건 중에서 하나를 반환합니다.

구문  IIf(expr, truepart, falsepart)

IIf 함수 문은 다음과 같은 명명된 인수 형식으로 사용합니다.

구성 요소       설명

expr             필수. 평가하고자 하는 식.

Truepart          필수. Expr이 True인 경우 반환하는 값이나 식.

Falsepart          필수. expr이 False인 경우 반환하는 값이나 식.

참고

IIf는 truepart와 falsepart 모두 평가하지만 둘 중 하나만을 반환합니다. 이러한 이유로 예상치 않은 결과 값이 나올 수 있으므로 주의해야 합니다. 예를 들면, falsepart인 경우에서 계산 결과가 불능이 되면, expr이 True이더라도 오류가 발생합니다.

문자열, 숫자, 또는 개체를 넘겨주는 키워드, 연산자, 변수, 상수의 조합을 의미합니다. 식은 계산 또는 문자 조작, 데이터 검사를 수행할 수 있습니다.

IIf 함수 예제

이 예제는 IIf 함수를 사용하여 CheckIt 프로시저의 TestMe 매개 변수를 평가하고 그 크기가 1000을 넘으면 단어 "Large"를 반환합니다. 그렇지 않으면 단어 "Small"을 반환합니다.

  Function CheckIt (TestMe As Integer)

  CheckIt = IIf(TestMe > 1000, "Large", "Small")

  End Function


◆ IsNumeric 함수

식을 수로 평가할 수 있는지 나타내는 Boolean 값을 반환합니다.

구문  IsNumeric(expression)

숫자 식 또는 문자열 식이 들어 있는 Variant를 나타내는 expression 인수가 필요합니다.

참고  IsNumeric은 expression 전체가 수로 인식되면 True를, 그렇지 않으면 False를 반환합니다.

expression이 날짜 식이면 IsNumeric은 False를 반환합니다.

날짜 식

날짜로 해석될 수 있는 모든 식을 의미하는데 날짜 리터럴, 날짜처럼 보이는 숫자, 날짜처럼 보이는 문자열, 함수로부터 받은 날짜를 포함합니다. 날짜 식은 숫자나 문자열의 조합으로 제한되며 날짜를 100년 1월 1일 부터 9999년 12월 31일까지 나타낼 수 있습니다.

날짜는 실수의 일부로 저장됩니다. 소수점의 왼쪽 값은 날짜를 나타내며 오른쪽 값은 시간을 나타냅니다. 음수는 1899년 12월 30일 이전을 나타냅니다.

IsNumeric 함수 예제

다음은 변수를 숫자로 평가할 수 있는 지를 결정하기 위해 IsNumeric 함수를 사용하는 예제입니다.

Dim MyVar, MyCheck

MyVar = "53"    ' 값을 지정합니다.

MyCheck = IsNumeric(MyVar)  ' True를 반환합니다.


MyVar = "459.95"          ' 값을 지정합니다.

MyCheck = IsNumeric(MyVar)  ' True를 반환합니다.

MyVar = "45 Help"         ' 값을 지정합니다.

MyCheck = IsNumeric(MyVar)  ' False를 반환합니다.


◆ Log 함수

특정한 수의 자연 로그 값을 지정하는 Double을 계산합니다.

구문  Log(number)

필수 항목인 number 인수에는 양수인 Double이나 양수인 숫자 식을 사용합니다.

참고

자연로그는 e를 밑으로 하는 로그입니다. 상수 e의 값은 약 2.718282입니다.

n을 밑으로 하는 x의 로그 값은 x에 대한 자연 로그 값을 n에 대한 자연 로그 값으로 나눈 값이며 아래와 같이 나타냅니다.

   Logn(x) = Log(x) / Log(n)

다음의 예는 10을 밑으로 하는 로그 값을 계산하는 사용자 정의 함수를 보여주고 있습니다.

   Static Function Log10(X)

            Log10 = Log(X) / Log(10#)

   End Function

상수

프로그램을 실행하는 동안 상수 값을 보유하는 지정 항목을 의미합니다. 상수로서 문자열이나 숫자 리터럴, 다른 상수, 또는 Is와 지수를 제외한 대수 및 논리 연산자의 모든 조합이 가능합니다. 각각의 호스트 응용 프로그램은 고유의 상수 집단을 정의할 수 있습니다. 사용자는 추가적인 상수를 Const 문을 사용하여 정의할 수 있습니다. 사용자는 코드의 어느 곳에나 실제 값 대신 상수를 사용할 수 있습니다.

Log 함수 예제

다음은 수의 자연 로그 값을 반환하기 위해 Log 함수를 사용하는 예제입니다.

Dim MyAngle, MyLog

MyAngle = 1.3  ' 라디안 값의 각을 정의합니다.

MyLog = Log(MyAngle + Sqr(MyAngle * MyAngle + 1))    ' 역 쌍곡선 사인값을 계산합니다.


◆ Oct 함수

숫자의 8진수 값을 Variant(String)값을 반환합니다.

구문  Oct(number)

number 인수로는 모든 유효한 숫자 식 또는 문자열 식이 사용됩니다.

참고  number 가 정수가 아니면 계산되기 전 가까운 정수로 반올림됩니다.

Number

Oct 반환값

 

적절한 범위 내의 숫자 앞에 &O를 붙이면 직접 8진수를 지정할 수 있습니다.

예를 들어 &O10 은 10진수로  ‘8’의 8진수 표기법입니다.

Null

Empty

그 이외의 수

Null

영(0)

최대 11자리의 8진수

Oct 함수 예제   다음은 Oct 함수를 사용하여 지정된 숫자에 대한 8진수 값을 구하는 예제입니다.

Dim MyOct

MyOct = Oct(4)       ' 4를 반환합니다.

MyOct = Oct(8)       ' 10을 반환합니다.

MyOct = Oct(459)     ' 713을 반환합니다.


◆ Partition 함수

계산된 범위 내의 어느 곳에서 숫자가 발생했는지를 알려주는 Variant(String)를 반환합니다.

구문  Partition(number, start, stop, interval)

Partition 함수의 구문은 아래와 같은 명명된 인수로 구성됩니다.

구성 요소

설명

number 

start    

stop    

interval 

필수. 지정한 범위 안에서 평가하고자 하는 횟수(정수).

필수. 지정한 전체 범위에 대하여 처리를 시작하고자 하는 숫자(정수). 0보다 커야 함.

필수. 지정한 전체 범위에 대하여 처리를 종료하고자 하는 숫자(정수). start 값보다 크거나 같아야 함.

필수. 지정한 범위 안에서 start값과 stop값 사이에 반복되는 주기를 나타내는 숫자(정수). 이 숫자는 1이상이어야 함

참고

Partition 함수는 범위 값을 표시하는 Variant(String)를 넘겨주고 되돌려주는 특정한 범위 값인 number를 나타냅니다. Partition 함수는 질의문에서 가장 유용하게 사용할 수 있습니다. 주어진 범위 안의 주문량을 구하기 위하여 선택 질의문을 작성할 수도 있습니다. 예를 들면, 1과 1000 또는 1001과 2000 사이의 주문량 등입니다.

다음은 세 개의 start와 stop, 그리고 interval을 이용하여 어떻게 범위가 주어졌는지를 나타내는 예입니다. 시작 범위 열과 종료 범위 열의 값은 어느 Partition을 반환하는지를 보여 주고 있습니다. 범위는 lowervalue:uppervalue로 표시하고, 최저값은 최대값과 콜론(:)으로 구분합니다.

start

stop

interval

시작 전

시작 범위

종료 범위

종료 후

0

99

5

"   :   -1"

"    0:    4"

"     95: 99"

"   100:   "

20

199

10

"   :   19"

"   20:   29"

"   190: 199"

"   200:   "

100

1010

20

"   :   99"

"  100:  119"

" 1000: 1010"

"  1011:   "

위와 같이, 세 번째 행은 interval로 start과 stop값을 나누었을 때 정수값이 나오지 않는 경우의 결과값을 보여주고 있습니다. 종료 범위값은 interval이 20일 경우에도 stop값까지 연장됩니다.

필요시, Partition 문은 충분한 필요 공간의 범위값을 반환하기 때문에 stop값에 문자가 있듯이 콜론의 좌우에는 같은 수의 문자가 놓이게 됩니다. 만일 사용자가 Partition 문을 다른 숫자와 함께 사용하는 경우, 관련된 정렬 작업 동안 결과 텍스트가 적절하게 처리됩니다.

interval이 1인 경우, 범위값은 start과 stop 인수에 관계없이 number:number가 됩니다. 예를 들면 interval이 1인 경우, 숫자값은 100이고 stop값은 1000이며, Partition 문은 "  100:  100"을 반환하게 됩니다.

모든 값이 Null이면, Partition은 Null을 반환합니다.


◆ Rnd 함수

난수를 포함하는 Single을 반환합니다.

구문  Rnd[(number)]

선택 항목인 number 인수에는 Single 또는 유효한 숫자 식을 사용합니다.

반환값

number 

Rnd는 다음과 같이 생성함

음수    

양수    

0       

없음    

항상 같은 숫자이며, number를 인자값으로 사용합니다.

다음 순서의 난수입니다.

가장 최근에 생성된 숫자입니다.

다음 순서의 난수입니다..

참고

Rnd 함수는 1보다 작은 값을 갖지만 0보다는 크거나 같습니다.

number의 값은 Rnd가 난수를 생성하는 방식을 결정해 줍니다.

주어진 초기 인자에 대하여, Rnd 함수를 계속 호출하면 그 직전의 숫자를 수열의 다음 인자로 사용하기 때문에 동일하게 숫자 배열이 생성됩니다.

Rnd를 호출하기 전에 시스템 시계가 부여한 난수 생성기를 초기화하려면 Randomize 문장에 인수를 사용치 않고 사용합니다.

주어진 범위 내에서 난수를 발생하려면 다음 공식을 사용하십시오.

Int((상한값 - 하한값 + 1) * Rnd + 하한값)

여기서, 상한값(upperbound )이란 범위 내의 최고값이며, 하한값(lowerbound )이란 범위 내의 최저값을 뜻합니다.

메모 난수열을 발생시키려면, 숫자 인수를 보유한 Randomize를 사용하기 전에 즉시 음(-)의 인수를 가진 Rnd를 호출합니다. number 부분에 동일한 값을 가진 Randomize를 사용하게 되면 앞서의 수열을 반복하지 않습니다.

Rnd 함수 예제 

다음은 1에서 6까지의 난수 정수값을 발생시키기 위해 Rnd 함수를 사용하는 예제입니다.

Dim MyValue

MyValue = Int((6 * Rnd) + 1)   ' 1과 6 사이의 난수를 발생합니다.


◆ Sgn 함수

특정 숫자의 부호를 가리키는 Variant (Integer)를 반환합니다.

구문  Sgn(number)

필수 항목인 number 인수에는 유효한 숫자 식을 사용합니다.

반환값

number

Sgn 값

 

참고

양수

0

음수

1

0

-1

number의 부호는 Sgn 함수의 반환값을 결정합니다.

Sgn 함수 예제  다음은 수의 부호를 결정하기 위해 Sgn 함수를 사용하는 예제입니다.

Dim MyVar1, MyVar2, MyVar3, MySign

MyVar1 = 12: MyVar2 = -2.4: MyVar3 = 0

MySign = Sgn(MyVar1)       ' 1을 반환합니다.

MySign = Sgn(MyVar2)       ' -1을 반환합니다.

MySign = Sgn(MyVar3)       ' 0을 반환합니다.


◆ Sin 함수

각도의 사인값을 지정하는 Double을 반환합니다.

구문  Sin(number)

필수 항목인 number 인수에는 Double 또는 유효한 숫자 식 을 사용합니다.

참고  Sin 함수는 각도를 직각 삼각형의 두 변의 비율로 반환합니다. 이 비율은 빗변의 길이를 각을 마주 보는 변의 길이로 나눈 값을 뜻합니다.

결과치는 - 1과 1 사이에 있습니다.

각도를 라디안으로 환산하려면, 각도에 pi/180를 곱합니다. 라디안을 각도로 환산하려면 라디안에 180/pi을 곱합니다.

Sin 함수 예제  다음은 각의 사인 값을 반환하기 위해 Sin 함수를 사용하는 예제입니다.

Dim MyAngle, MyCosecant

MyAngle = 1.3      ' 라디안 값의 각을 정의합니다.

MyCosecant = 1 / Sin(MyAngle)    ' 코세컨트(cosecant)를 계산합니다.


◆ Switch 함수

식의 목록 식을 평가한 후 목록에서 True 값을 갖는 최초의 식과 관련된 Variant 값이나 식을 반환합니다.

구문  Switch(expr-1, value-1[,expr-2, value-2 · [,expr-n,value -n]])

Switch 문은 다음과 같은 구성 요소로 되어있습니다.

구성 요소

설명 

expr

value

필수. 평가하고자 하는  Variant 식

필수. 대응하는 식이 True인 경우 식이나 값을 반환합니다.

참고

Switch 함수의 인수 목록은 식과 값의 쌍로 구성됩니다. 식은 왼쪽에서 오른쪽으로 평가되며, True로 평가된 첫째 식과 관련된 값을 반환합니다. 구성 요소들이 적절히 짝지워지지 않은 경우는 런타임 오류

가 발생합니다. 예를 들면, expression-1이 True면, Switch 문은 value-1을 반환하고, expression-1이 True이고, expression-2가 True인 경우, Switch 문은 value-2를 반환합니다.

Switch 문은 다음의 경우에 Null 값을 반환합니다.

※ True인 식이 없는 경우.

※ True인 최초의 식이 Null에 대응하는 값을 갖는 경우.

Switch 문은 식 중에서 하나의 값만을 반환하지만 모든 식을 다 평가합니다. 이러한 이유때문에 예상치 않은 결과가 발생할 수 있으므로 주의해야 합니다. 예를 들면, 불능인 식의 계산은 오류를 발생시킵니다.

Switch 함수 예제

이 예제는 Switch 함수를 사용하여 도시의 이름과 일치하는 언어 이름을 반환합니다.

Function MatchUp (CityName As String)

Matchup = Switch(CityName = "London", "English", CityName = "Rome", "Italian", CityName = "Paris", "French")

End Function


◆ Tan 함수

각도의 탄젠트값을 지정하는 Double 값을 반환합니다.

구문  Tan(number)

필수 항목 number 인수는 Double이나 유효한 라디안으로 된 각을 표현하는 숫자 식입니다.

참고

Tan는 각도를 취하여 직각 삼각형의 두 변의 비율을 반환합니다. 이 비율은 각을 마주하는 변의 길이를 각에 인접한 변으로 나눈 값입니다.

각도를 라디안으로 환산하려면 각도에 pi/180를 곱합니다. 라디안을 각도로 환산하려면 라디안에 180/pi를 곱합니다.

Tan 함수 예제

다음은 각의 탄젠트 값을 반환하기 위해 Tan 함수를 사용하는 예제입니다.

Dim MyAngle, MyCotangent

MyAngle = 1.3     ' 라디안 값의 각을 정의합니다.

MyCotangent = 1 / Tan(MyAngle)       ' 코탄젠트를 계산합니다.






●날짜시간관련함수


◆ Date 함수

현재 시스템 날짜를 포함한 Variant(Date) 값을 반환합니다.

구문  Date

참고  시스템 날짜 설정시 Date 문을 사용합니다.

Date 함수 예제

이 예제는 Date 함수를 사용하여 현재 시스템 날짜를 반환합니다.

Dim MyDate

MyDate = Date  ' MyDate에 현재 시스템 날짜가 포함되어 있습니다.


◆ DateAdd 함수

특정 시간 간격을 포함한 Variant (Date) 값을 반환합니다.

구문  DateAdd(interval, number, date)

DateAdd 함수 구문은 다음과 같은 이름 지정된 인수로 되어 있습니다

구성 요소

설명

interval

필수. 문자열 식을 사용하여 시간 간격을 표시합니다.

Number

필수 숫자 식을 사용하여 날짜에 시간 간격을 가감합니다.

양수(이후 시간을 계산하는 경우)와 음수(이전 시간을 계산하는 경우) 모두 사용 가능합니다.

Date

필수. Variant (Date) 형의 날짜에는 시간 간격이 가감됩니다.

설정  interval 인수는 다음과 같이 설정되어 있습니다.

설정 사항

설명

설정 사항

설명

yyyy

연도

w

요일

q

분기

ww

m

h

시간

y

일자

n

d

s

참고

날짜에 특정 시간을 가감할 때 DateAdd 함수를 사용합니다.

예를 들어, 현재 시간부터 45분 이후 시간이나, 현재 일로부터 30일 이후의 날짜를 계산할 때 DateAdd 함수를 사용합니다.

date에 날짜를 더할 때, 연("y"), 일("d")이나 요일("w")을 사용합니다.

DateAdd 함수는 틀린 날짜 값은 반환하지 않습니다. 다음은 95년 1월 31일에 1개월(30일)을 더한 예제입니다:

   DateAdd("m", 1, "31-Jan-95")

위의 경우, DateAdd 함수는 95년-2월-31일이 아닌 95년-2월-28일을 반환합니다.

만약 date 가 96년 1월 31일인 경우는 윤년이기 때문에 96년 2월 29일을 반환합니다.

계산한 날짜가 100년을 넘어가는 경우 오류가 발생합니다.(실제 date보다 많은 연도를 가감했기 때문입니다)

number가 Long 값이 아닌 경우는, 가까운 정수값으로 반올림한 후 계산합니다.

명명된 인수

개체 라이브러리에서 먼저 정의된 이름을 가진 인수를 의미합니다. 구문에서 요구하는 지정된 순서의 각 인수 값을 제공하는 대신에 사용자는 명명된 인수를 사용하여 임의의 순서로 값을 할당할 수 있습니다. 예를 들면 다음과 같이 세 개의 인수를 받는 방법을 제안합니다.

DoSomeThing namedarg1, namedarg2, namedarg3

값을 명명된 인수에 할당함으로써 사용자는 다음의 문을 사용할 수 있습니다.

DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20

명명된 인수는 구문의 정상 배치 순서로 나타내지 않아도 된다는 것을 주의하십시오.

Long 데이터 형식

-2,147,483,648에서 2,147,483,647까지의 범위를 갖는 4바이트 정수를 의미합니다. 앰퍼샌드(

&) 형식 선언 문자는 Visual Basic에서 Long으로 나타납니다.

DateAdd에서 반환하는 값의 형식은 날짜 인수에서 전달한 형식에 따라 결정되지 않고 제어판의 설정에 따라 결정됩니다.

DateAdd 함수 예제

이 예제는 날짜를 선택하고 DateAdd 함수를 사용하여 미래의 지정된 달에 따른 날짜를 나타냅니다.

   Dim FirstDate As Date ' 변수를 선언합니다.

   Dim IntervalType As String

   Dim Number As Integer

   Dim Msg

   IntervalType = "m"    ' "m" specifies months as interval.

   FirstDate = InputBox("Enter a date")

   Number = InputBox("Enter number of months to add")

   Msg = "New date: " & DateAdd(IntervalType, Number, FirstDate)

   MsgBox Msg


◆ DateDiff 함수

지정된 두 날짜 간의 시간 간격을 의미하는 Variant (Long) 값을 반환합니다.

구문  DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

DateDiff 함수 구문은 다음과 같은 이름 지정된 인수로 되어 있습니다.

구성 요소

설명

interval     

date1, date2

Firstdayofweek

Firstweekofyear

필수. 문자열 식을 사용하여 date1와 date2 간의 시간 간격을 계산.

필수. Variant (Date) 값. 두 날짜 값을 계산.

선택. 상수는 주의 시작하는 요일을 지정. 생략시 일요일로 지정.

선택. 상수는 년의 시작하는 주를 지정. 생략시 1월 1일이 포함된 주를 지정.

설정

interval 인수는 다음과 같은 구성 요소로 되어 있습니다

연도

분기

연중 일자

요일

yyyy

q

m

y

d

w

ww

h

n

s

firstdayofweek 인수는 다음과 같이 설정되어 있습니다

 

firstweekofyear 인수는 다음과 같은 구성 요소로 되어 있습니다

상 수

설 명

 

상 수

설 명

vbUseSystemVbSunday

vbMonday

vbTuesday

vbWednesday

vbThursday

vbFriday     

vbSaturday

0

1

2

3

4

5

6

7

NLS API 설정 값을 사용

일요일(기본값)

월요일

화요일

수요일

목요일

금요일

토요일

 

vbUseSystem

VbFirstJan1

VbFirstFourDay

VbFirstFullWeek

0

1

2

3

NLS API 설정 값을 사용.

1월 1일이 포함된 주부터 시작. (기본 값).

신년의 주중 일자가 4일 이상인 주를 첫 주로 시작.

신년의 주중 일자가 7일인 주로 시작.

참고

DateDiff 함수는 날짜 간에 시간 간격을 계산할 때 사용합니다. 예를 들면, 두 날짜 간의 일자 계산이나 현재 날짜부터 연말까지 주 수를 계산할 때 DateDiff 함수를 사용합니다.

date1과 date2 간의 일자를 계산하는 경우 연("y")이나 일("d")을 사용합니다. interval이 요일("w")인 경우, DateDiff는 두 날짜 간의 주 수를 반환합니다. date1이 월요일일 경우 DateDiff는 date2까지 월요일 수를 계산합니다. date1이 아닌 date2를 계산합니다. interval이 주("ww")일 경우, DateDiff 함수는 지정된 두 날짜 간의 주 수를 반환합니다. 이 경우,date1과 date2 간의 일요일 수를 계산합니다. DateDiff 함수는 일요일로 나누어 떨어지는 경우 date2를 계산하고, date1

인 경우는 계산하지 않습니다.

date1가 date2 이후 시간인 경우, DateDiff 함수는 음수를 반환합니다.

firstdayofweek 인수는 시간 간격 부호 "w"와 "ww"의 결과값에 영향을 줍니다.

date1 또는 date2가 date 문자열인 경우, 지정된 날짜 부분의 값은 변하지 않습니다. 그러나 date1

과 date2가 큰 따옴표(" ")로 묶인 경우, 년도를 생략해도 프로그램에는 date1와 date2 식을 처리할 때마다 항상 현재 년도가 삽입됩니다. 다음 경우 다른 년에 사용하는 프로그램을 작성할 수 있습니다.

12월 31일을 익년 1월 1일과 비교하면, DateDiff 함수는 일자로는 하루 차가 나지만, 년도 값("yyyy") 1을 반환합니다.

명명된 인수

개체 라이브러리에서 먼저 정의된 이름을 가진 인수를 의미합니다. 구문에서 요구하는 지정된 순서의 각 인수 값을 제공하는 대신에 사용자는 명명된 인수를 사용하여 임의의 순서로 값을 할당할 수 있습니다. 예를 들면 다음과 같이 세 개의 인수를 받는 방법을 제안합니다.

DoSomeThing namedarg1, namedarg2, namedarg3 값을 명명된 인수에 할당함으로써 사용자는 다음의 문을 사용할 수 있습니다.

DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20

명명된 인수는 구문의 정상 배치 순서로 나타내지 않아도 된다는 것을 주의하십시오.

문자열 식

계속된 문자의 나열을 계산하는 식을 의미합니다. 문자열 식의 요소는 문자열 문자, 문자열 리터럴, 문자열 상수, 문자열 변수, 문자열 Variant를 반환하는 함수 또는 문자열 Variant (VarType 8)를 반환하는 함수를 포함합니다.

상수

프로그램을 실행하는 동안 상수 값을 보유하는 지정 항목을 의미합니다. 상수로서 문자열이나 숫자 리터럴, 다른 상수, 또는 Is와 지수를 제외한 대수 및 논리 연산자의 모든 조합이 가능합니다. 각각의 호스트 응용 프로그램은 고유의 상수 집단을 정의할 수 있습니다. 사용자는 추가적인 상수를 Const 문을 사용하여 정의할 수 있습니다. 사용자는 코드의 어느 곳에나 실제 값 대신 상수를 사용할 수 있습니다.

날짜 리터럴

수 기호(#)로 둘러싸인 유효 형식으로 나열된 문자를 의미합니다. 유효 형식에는 사용자 코드용 지역 설정이나 일반 날짜 유형에 의해 지정되는 날짜 형식을 포함합니다.

예를 들면 #12/31/96#은 1996년 12월 31일을 나타내는 날짜 표현 문자이며, English-U.S.는 사용자의 응용 프로그램을 위한 지역 설정입니다. 국가별 언어간의 통용성을 극대화하기 위해서 날짜 리터럴를 사용합니다.

DateDiff 함수 예제

이 예제는 DateDiff 함수를 사용하여 주어진 날짜와 오늘 사이의 날짜 수를 나타냅니다.

   Dim TheDate As Date     ' 변수를 선언합니다.

   Dim Msg

   TheDate = InputBox("Enter a date")

   Msg = "Days from today: " & DateDiff("d", Now, TheDate)

   MsgBox Msg


◆ DatePart 함수

관련 자료의 특정 부분을 포함한 Variant (Integer) 값을 반환합니다.

구문  DatePart(interval, date[,firstdayofweek[, firstweekofyear]])

DatePart 함수 구문은 다음과 같은 이름 지정된 인수 형식으로 사용합니다.

구성 요소

설명

interval     

Date        

firstdayofweek

Firstweekofyear

필수. 문자열 식을 사용하여 시간 간격을 나타냅니다.

필수. Variant (Date) 값을 계산합니다..

선택. 상수를 사용하여 주의 시작일을 지정합니다. 생략시 일요일로 계산합니다.

선택. 상수를 사용하여 년의 첫 주를 계산합니다. 생 시 1월 1일이 포함된 주를 지정합니다.

설정  interval 인수는 다음과 같이 설정됩니다.

설 정

yyyy

q

m

y

d

w

ww

h

n

s

설 명

연도

분기

요일

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일인 주로 시작.

참고

특정한 시간 간격을 계산하거나 결과값을 반환할 때 DatePart 함수를 사용합니다. 예를 들어 현재 시각이나 요일을 계산할 때 DatePart 함수를 사용할 수 있습니다.

firstdayofweek 인수는 시간 간격 부호 "w"와 "ww"의 결과값에 영향을 줍니다.

date가 date 문자열인 경우, 지정된 날짜 부분의 값은 변하지 않습니다. 그러나 date 큰 따옴표 ("")로 묶인 경우, 년도를 생략해도 프로그램 상에는 date 식을 처리할 때마다 코드에 항상 현재 년도가 삽입됩니다. 위 경우 다른 년도에 사용하는 코드를 작성할 수 있습니다.

DatePart 함수 예제

이 예제는 날짜를 선택하고 DatePart 함수를 사용하여 그 해의 4분기를 나타냅니다.

   Dim TheDate As Date     ' 변수를 선언합니다.

   Dim Msg     

   TheDate = InputBox("Enter a date:")

   Msg = "Quarter: " & DatePart("q", TheDate)

   MsgBox Msg


◆ DateSerial 함수

지정된 년, 월, 일의 Variant (Date) 값을 반환합니다.

구문  DateSerial(year, month, day)

DateSerial 함수 구문은 다음과 같은 이름 지정된 인수 형식으로 사용합니다

구성 요소

설명

year    

Month  

Day    

필수.정수. 숫자 식을 포함한 100과 9999 사이의 숫자를 나타냅니다.

필수. 정수. 모든 숫자 식.

필수. 정수. 모든 숫자 식.

참고

날짜 지정시, 1991년 12월 31일과 같은 각 DateSerial 인수의 범위 값은 단위별로 승인된 범위 내에서만 사용 가능합니다. 즉, 일자는 1 - 31까지, 월은 1 - 12까지입니다. 각 인수에 대하여 특정일 전후의 년, 월, 일을 표시하는 숫자 식을 사용할 때 가변 일자를 지정할 수도 있습니다.

다음은 특정 일자를 지정하지 않고 숫자 식을 사용한 예제입니다. DateSerial 함수는 1일로부터 1일 전(1 - 1), 8월로부터 2개월 전(8 - 2), 1990년으로부터 10년 전(1990 - 10) 등에 해당하는 날짜인 1980년 5월 31일을 반환합니다.

   DateSerial(1990 - 10, 8 - 2, 1 - 1)

year 인수의 경우 0에서 29까지의 수는 2000-2029년으로 해석됩니다. 30에서 99까지의 수는 1930-1999년으로 해석됩니다.

다른 모든 연도 인수에는 4자리 수(예를 들면 1800)를 사용합니다.

인수 값이 승인된 범위를 초과할 경우, 적절한 상위 단위로 변환하여 계산합니다. 예를 들어 35일을 지정한 경우, 해당 년도 적용 일자에 따라 1개월 몇 일로 계산합니다. 단위 인수 값이 -32,768에서 32,767의 범위를 초과하는 경우는 오류가 발생합니다. 세 인수에 따라 지정된 날짜가 승인된 범위를 초과하는 경우에도 오류가 발생합니다.

DateSerial 함수 예제

이 예제는 DateSerial 함수를 사용하여 지정된 년, 월, 일에 대한 날짜를 반환합니다.

Dim MyDate      ' MyDate에 1969년 2월 12일에 대한 날짜가 포함되어 있습니다.

MyDate = DateSerial(1969, 2, 12)   ' 날짜를 반환합니다.


◆ DateValue 함수

Variant (Date) 값을 반환합니다.

구문  DateValue(date)

date 인수는 1월 1일, 100부터 12월 31일, 9999까지의 날짜를 나타내는 문자열 식입니다. date는 숫자 식을 사용하여 지정된 범위 내의 날짜, 시간, 일시 등을 나타냅니다.

참고

date는 유효한 날짜 구분 기호로 분리되는 숫자를 포함하는 문자열로써 DateValue 함수는 시스템에 지정된 간단한 날짜 유형에 따라 순서대로 년, 월, 일을 인식합니다. DateValue 함수는 약식 또는 정식 월 이름을 포함한 정해진 날짜 형식을 인식합니다.

예를 들어 DateValue 함수는 1991년 12월 30일의 영문 표기법인 December 30, 1991과 Dec 30, 1991를 모두 인식합니다.

DateValue 중 년도 부분을 생략한 경우, DateValue 함수는 시스템의 현재 년도를 사용합니다.

시간 정보를 포함하는 date 인수의 경우, DateVale 함수는 해당 정보를 반환하지 않습니다.

만일 유효하지 않은 시간 정보(예, "89:98")를 포함하고 있는 경우 오류가 발생합니다.

날짜 구분자

날짜 값이 형식화되어 있을때 일, 월, 년도를 분리하기위해 사용하는 문자를 의미합니다. 이 문자는 시스템 설정이나 Format 함수에 의해서 결정됩니다.

DateValue 함수 예제

이 예제는 DateValue 함수를 사용하여 문자열을 날짜로 변환합니다.

사용자는 날짜 문자를 사용하여 날짜를 직접 Variant이나 Date 변수로 할당할 수 있습니다.

예를 들면, MyDate = #2/12/69#.

   Dim MyDate

   MyDate = DateValue("February 12, 1969")    ' 날짜를 반환합니다.


◆ Day 함수

해당 월의 날짜를 의미하는 정수값에 해당하는 Variant (Integer) 값을 반환합니다.

구문  Day(date)

date 인수는 날짜를 표시할 수 있는 Variant, 숫자 식, 문자열 식, 및 기타 형식 등을 사용합니다. date

에 Null 값이 포함되어 있으면, Null 값을 반환합니다.

Day 함수 예제

이 예제는 Day 함수를 사용하여 지정된 날짜로부터 그 달의 일을 얻습니다. 개발 환경에서 날짜 문자는 사용자 코드를 지역 설정하여 간단한 날짜 형식으로 나타냅니다.

   Dim MyDate, MyDay

   MyDate = #February 12, 1969#    ' 날짜를 지정합니다.

   MyDay = Day(MyDate)         ' MyDay가 12를 포함하고 있습니다.


◆ Hour 함수

시간을 나타내는 0에서 23 사이의 정수 Variant (Integer) 값을 반환합니다.

구문  Hour(time)

time 인수는 시간을 표시할 수 있는 Variant, 숫자 식, 문자열 식, 또는 조합형을 사용합니다. time이 Null을 포함하면 Null 값을 반환합니다.

Hour 함수 예제

이 예제는 시간 함수를 사용하여 지정된 시간로부터 시를 얻습니다. 개발 환경에서 시간 문자는 사용자 코드를 지역 설정하여 간단한 날짜 형식으로 나타냅니다.

  Dim MyTime, MyHour

  MyTime = #4:35:17 PM#     ' 시간을 지정합니다.

  MyHour = Hour(MyTime)    ' MyHour contains 16.


◆ IsDate 함수

식을 날짜로 변환할 수 있는지 나타내는 Boolean 값을 반환합니다.

구문  IsDate(expression)

날짜나 시간으로 인식할 수 있는 날짜 식 또는 문자열 식이 들어 있는 Variant를 나타내는 expression 인수가 필요합니다.

참고

IsDate는 식이 날짜이거나 유효한 날짜로 변환할 수 있으면 True를, 그렇지 않으면 False를 반환합니다. Microsoft Windows에서 사용할 수 있는 유효한 날짜의 범위는 A.D. 100년 1월1일에서 A.D. 9999년 12월31일까지이고, 운영 체제마다 그범위가 다릅니다.

IsDate 함수 예제

다음은 식을 날짜로 변경할 수 있는 지를 결정하기 위해 IsDate 함수를 사용하는 예제입니다.

Dim MyDate, YourDate, NoDate, MyCheck

MyDate = "February 12, 1969": YourDate = #2/12/69#: NoDate = "Hello"

MyCheck = IsDate(MyDate)     ' True를 반환합니다.

MyCheck = IsDate(YourDate)    ' True를 반환합니다.

MyCheck = IsDate(NoDate)      False를 반환합니다.


◆ Minute 함수

분을 나타내는 0에서 59 사이의 정수 Variant (Integer) 값을 반환합니다.

구문  Minute(time)

time 인수는 시간을 표시할 수 있는 Variant, 숫자 식, 문자열 식, 또는 조합형을 사용합니다. time이 Null을 포함하면 Null 값을 반환합니다.

Minute 함수 예제

이 예제는 Minute 함수를 사용하여 지정된 시간로부터 시의 분을 얻습니다. 개발 환경에서 시간 문자는 사용자 코드를 지역 설정하여 간단한 날짜 형식으로 나타냅니다.

Dim MyTime, MyMinute

MyTime = #4:35:17 PM#        ' 시간을 지정합니다.

MyMinute = Minute(MyTime)   ' MyMinute가 35를 포함하고 있습니다.


◆ Month 함수

년 중 월을 나타내는 1에서 12 사이의 정수 Variant (Integer) 값을 반환합니다.

구문  Month(date)

date 인수는 날짜를 표시할 수 있는 Variant, 숫자 식, 문자열 식, 또는 조합형을 사용합니다. date가 Null을 포함하면, Null을 반환합니다.

Month 함수 예제

이 예제는 Month 함수를 사용하여 지정된 날짜로부터 월을 얻습니다. 개발 환경에서 날짜 문자는 사용자 코드를 지역 설정하여 간단한 날짜 형식으로 나타냅니다.

Dim MyDate, MyMonth

MyDate = #February 12, 1969#   ' 날짜를 지정합니다.

MyMonth = Month(MyDate)     ' MyMonth가 2를 포함하고 있습니다.


◆ Now 함수

사용자 컴퓨터의 시스템 날짜나 시간에 따른 현재 날짜와 시간을 지정하는 Variant (Date) 값을 반환합니다.

구문  Now

Now 함수 예제

이 예제는 Now 함수를 사용하여 현재 시스템 날짜와 시간을 반환합니다.

   Dim Today

   Today = Now   ' 현재 시스템 날짜와 시간을 지정합니다.


◆ Second 함수

초를 나타내는 0에서 59 사이의 정수 Variant (Integer) 값을 반환합니다.

구문 Second(time)

time 인수는 시간을 표시할 수 있는 Variant, 숫자 식, 문자열 식, 또는 조합형을 사용합니다. time이 Null을 포함하면, Null을 반환합니다.

Second 함수 예제  이 예제는 Second 함수를 사용하여 지정된 시간으로부터 분의 초를 얻습니다. 개발 환경에서 시간 문자는 사용자 코드를 지역 설정하여 간단한 날짜 형식으로 나타냅니다.

Dim MyTime, MySecond

MyTime = #4:35:17 PM# ' 시간을 지정합니다.

MySecond = Second(MyTime)   ' MySecond가 17을 포함하고 있습니다.


◆ Time 함수

현재의 시스템 시간을 나타내는 Variant (Date) 값을 반환합니다.

구문  Time

참고  시스템 시간을 설정할 때, Time 문을 사용합니다.

Time 함수 예제

이 예제는 Time 함수를 사용하여 현재 시스템 시간을 반환합니다.

Dim MyTime

MyTime = Time      ' 현재 시스템 시간을 반환합니다.


◆ Timer 함수

자정 이후 경과한 초 수를 나타내는 Single 값을 반환합니다.

구문  Timer

Timer 함수 예제

이 예제는 Timer 함수를 사용하여 응용 프로그램을 잠시 멈추게 합니다. 또한 DoEvents를 사용하여 잠시 멈추는 동안 다른 프로세스를 제공합니다.

Dim PauseTime, Start, Finish, TotalTime

If (MsgBox("예를 눌러서 5초동안 중지합니다", 4)) = vbYes Then

     PauseTime = 5         ' 기간을 지정합니다.

     Start = Timer          ' 시작 시간을 지정합니다.

     Do While Timer < Start + PauseTime

             DoEvents            ' 다른 프로시저로 넘깁니다.

     Loop

     Finish = Timer               ' 종료 시간을 지정합니다.

     TotalTime = Finish - Start    ' 전체 시간을 계산합니다.

     MsgBox TotalTime & " 초동안 중지되었습니다"

Else

     End

End If

TimeSerial 함수

특정 시, 분, 초에 대한 시간을 나타내는 Variant (Date) 값을 반환합니다.

구문  TimeSerial(hour, minute, second)

TimeSerial 함수 문은 다음과 같은 이름 지정된 인수로 되어 있습니다.

구성 요소

설명

hour

minute

second 

필수; Variant (Integer). 숫자 식이나 0(12:00 A.M.)과 23(11:00 P.M.) 사이의 숫자입니다.

필수, Variant (Integer). 모든 숫자 식.

필수, Variant (Integer). 모든 숫자 식.

참고

11:59:59와 같이 시간을 지정할 때, TimeSerial 인수는 지정 시간의 범위 값만을 사용할 수 있습니다. 시간의 경우 0 - 23값이거나 분이나 초의 경우 0 - 59 사이의 값을 사용합니다. 특정 시간 전후의 시,분,초를 표현한 숫자 식을 사용하여 각 인수를 상대 시간으로 지정할 수도 있습니다. 다음은 절대 시간 대신에 식을 사용한 예입니다. TimeSerial 함수가 정오로부터 6시간 전(12 - 6)의 15분 전(-15) 시각 또는 5:45:00 A.M을 반환합니다.

     TimeSerial(12 - 6, -15, 0)

인수 값이 승인된 범위를 초과하는 경우, 적절한 상위 단위로 변환하여 계산합니다. 예를 들어, 75분을 지정한 경우 이 값은 1시간 15분으로 계산됩니다. 단위 인수 값이 -32,768에서 32,767의 범위를 초과하는 경우는 오류가 발생합니다. 세 인수에 따라 지정된 날짜가 승인된 범위를 초과하는 경우에도 오류가 발생합니다.

TimeSerial 함수 예제  이 예제는 TimeSerial 함수를 사용하여 지정된 시, 분, 초에 대한 시간을 반환합니다.

 Dim MyTime

 MyTime = TimeSerial(16, 35, 17)   ' MyTime이 4:35:17 PM의 일련 표현을 포함하고 있습니다.


◆ TimeValue 함수

시간 값을 포함한 Variant (Date) 값을 반환합니다.

구문  TimeValue(time)

time 인수는 0:00:00 (12:00:00 A.M.)부터 23:59:59(11:59:59 P.M.)까지의 값을 갖는 문자열 식으로 사용합니다. 그러나 지정된 범위의 time을 나타내기 위하여 어떤 식도 사용할 수 있습니다. time에 Null

이 포함되어 있으면, Null을 반환합니다.

참고

12시나 24시 시계를 이용하여 유효한 시간을 입력할 수 있습니다. 예를 들어, "2:24PM"과 "14:24"는 모두 유효한 time 인수입니다.  time 인수는 TimeValue가 반환하지 않는 날짜 정보를 포함합니다. 그러나 time에 잘못된 날짜 정보가 포함된 경우, 오류가 발생합니다.

TimeValue 함수 예제

이 예제는 TimeValue 함수를 사용하여 문자열을 시간으로 변환합니다. 사용자는 날짜 문자를 사용하여 시간을 직접 Variant나 Date 변수로 할당할 수 있습니다. 예를 들면, MyTime = #4:35:17 PM#.

Dim MyTime

MyTime = TimeValue("4:35:17 PM")     ' 시간을 반환합니다.


◆ Weekday 함수

평일을 나타내는 정수를 포함한 Variant (Integer) 값을 반환합니다.

구문  Weekday(date, [firstdayofweek])

Weekday 함수 구문은 다음과 같은 이름 지정된 인수 로 되어 있습니다.

구성 요소

설명

date

 

Firstdayofweek

필수. Variant, 숫자 식, 문자열 식, 또는 조합형을 사용하여 날짜를 나타냄. date에 Null이 포함되어 있으면, Null을 반환.

선택. 주 중 첫 날을 지정하는 상수 값이 지정되지 않았다면 vbSunday로 계산.

설정

firstdayofweek 인수는 다음과 같이 설정되어 있습니다.

 

반환값

Weekday 함수는 다음과 같은 값 중의 하나를 반환합니다.

상수

설명

 

상수

설명

vbUseSystem

VbSunday

vbMonday

vbTuesday

vbWednesday

vbThursday

vbFriday 

vbSaturday

0

1

2

3

4

5

6

7

NLS API 설정을 사용.

일요일 (기본값)

월요일

화요일

수요일

목요일

금요일

토요일

vbSunday

vbMonday

vbTuesday

vbWednesday

vbThursday

vbFriday     

vbSaturday

1

2

3

4

5

6

7

일요일

월요일

화요일

수요일

목요일

금요일

토요일

Weekday 함수 예제  이 예제는 Weekday 함수를 사용하여 지정된 날짜로부터 주의 일을 얻습니다.

Dim MyDate, MyWeekDay

MyDate = #February 12, 1969#       ' 날짜를 지정합니다.

MyWeekDay = Weekday(MyDate)       ' MyDate가 수요일을 나타내기때문에 MyWeekDay가 4를 포함합니다.


◆ Year 함수

연도를 나타내는 정수를 포함한 Variant (Integer) 값을 반환합니다.

구문  Year(date)

date 인수는 날짜를 표시할 수 있는 Variant, 숫자 식, 문자열 식, 또는 조합형을 사용합니다. date에 Null이 포함되어 있으면, Null을 반환합니다.

Year 함수 예제  이 예제는 Year 함수를 사용하여 지정된 날짜로부터 년을 얻습니다. 개발 환경에서 날짜 문자는 사용자 코드를 지역 설정하여 간단한 날짜 형식으로 나타냅니다.

Dim MyDate, MyYear

MyDate = #February 12, 1969#   ' 날짜를 지정합니다.

MyYear = Year(MyDate)         ' MyYear contains 1969.                        















●파일관련함수


◆ EOF 함수

Random 혹은 연속된 Input 용으로 열린 파일의 끝에 도달하면 Boolean 값 True가 들어 있는 Integer를 반환합니다.

구문  EOF(filenumber)

필수 항목인 filenumber 인수는 유효한 파일 번호가 들어 있는 Integer를 사용합니다.

참고

EOF를 사용하면 파일의 끝을 지나 입력을 시도함으로써 생기는 오류를 피할 수 있습니다.

EOF 함수는 파일 끝에 도달할 때까지 False를 반환합니다. Random 또는 Binary 액세스용으로 연 파일인 경우에 EOF는 마지막으로 실행된 Get 문이 전체 레코드를 읽을 수 없을 때까지 False를 반환합니다.

Binary 액세스용으로 연 파일인 경우는, EOF가 True를 반환할 때까지 Input 함수로 파일을 읽으려고 하면 오류가 발생합니다. Input으로 이진 파일을 읽을 때는 EOF 대신에 LOF 및 Loc 함수를 사용하고, EOF를 사용할 때는 Get을 사용합니다. Output 용으로 열린 파일에서는 언제나 True를 반환합니다.

Boolean 데이터 형식

두 개의 가능값인 True (-1) 나 False (0) 값만을 갖는 데이터 형식. Boolean 값은 16비트 (2바이트) 숫자로 저장됩니다.

Integer 데이터 형식

-32,768에서 32,767까지의 범위에서 2바이트 전체 숫자로 저장된 정수 변수를 갖는 데이터 형식을 의미합니다. Integer 데이터 형식은 또한 계산된 값을 나타내는데 사용됩니다. 퍼센트 기호(%)형식 선언 문자는 Visual Basic에서 Integer로 나타냅니다.

파일 번호

파일을 열기 위해 Open 문에서 사용하는 숫자를 의미합니다. 다른 응용 프로그램에 액세스할 수 없는 파일에는 1에서 255까지의 범위에 포함된 파일 번호를 사용합니다. 다른 응용 프로그램으로부터 액세스할 수 있는 파일에는 256에서 511까지의 파일 번호를 사용합니다.

EOF 함수 예제

다음은 파일의 끝을 찾아내기 위해 EOF 함수를 사용하는 예제입니다. 이 예제에서 MYFILE은 여러 줄에 걸친 문자열로 이루어진 텍스트 파일이라고 가정합니다.

Dim InputData

Open "MYFILE" For Input As #1 ' 입력을 위해 파일을 엽니다.

Do While Not EOF(1)          ' 파일의 끝을 확인합니다.

    Line Input #1, InputData   ' 데이터 행을 읽어 들입니다.

    Debug.Print InputData     ' 디버그 창에 출력합니다.

Loop

Close #1     ' 파일을 닫습니다.


◆ FileAttr 함수

Open 문으로 연 파일의 파일 모드를 나타내는 Long을 반환합니다.

구문  FileAttr(filenumber, returntype)

FileAttr 함수 구문은 다음과 같이 명명된 인수로 구성되어 있습니다.

구성 요소

설명

filenumber

필수. Integer이며 유효한 파일 번호입니다.

returntype

필수. Integer이며 반환할 정보 형식을 나타내는 수 입니다. 1로 지정하면 파일 모드를 나타내는 값을 반환하며, 16 비트 시스템인 경우에 한하여 2로 지정하면 운영 체제 파일 핸들을 불러 옵니다.

Returntype 2는 32 비트 시스템에서 지원되지 않으며 오류가 발생합니다.

반환값

returntype 인수가 1일 때 다음 반환값은 파일 액세스 모드를 나타냅니다.

모드    

Input   1

Output  2

Random 4

Append 8

Binary  32

FileAttr 함수 예제

다음은 열려진 파일의 파일 모드와 파일 핸들을 반환하기 위해 FileAttr 함수를 사용하는 예제입니다.

Dim FileNum, Mode, Handle

FileNum = 1 ' 파일 번호를 지정합니다.

Open "TESTFILE" For Append As FileNum      ' 파일을 엽니다.

Mode = FileAttr(FileNum, 1)    ' 8을 반환합니다(Append 파일 모드입니다).

Handle = FileAttr(FileNum, 2)  ' 파일 핸들을 반환합니다.

Close FileNum        ' 파일을 닫습니다.


◆ FileDateTime 함수

파일이 생성되거나 마지막으로 수정된 날짜와 시간을 나타내는 Variant (Date)를 반환합니다.

구문  FileDateTime(pathname)

pathname 인수는 파일 이름을 지정하는 문자열 식이며,필수적으로 사용됩니다. 이pathname에는 디렉토리 또는 폴더, 드라이브가 포함될 수 있습니다.

FileDateTime 함수 예제

이 예제는 FileDateTime 함수를 사용하여 파일이 만들어졌거나 최근 수정된 날짜와 시간을 결정합니다. 나타내는 날짜와 시간의 유형은 사용자 시스템의 지역 설정에 기초합니다.

Dim MyStamp

' TESTFILE이 February 12, 1993 4:35:47 PM에 마지막 수정되었다고 가정합니다.

' 영국/미국 지역 설정을 가정합니다.

MyStamp = FileDateTime("TESTFILE")    ' "2/12/93 4:35:47 PM"을 반환합니다.


◆ FileLen 함수

파일 길이를 바이트 수로 지정하는 Long을 반환합니다.

구문  FileLen(pathname)

pathname 인수는 파일을 지정하는 문자열 식이며,필수적으로 사용됩니다. 이pathname에는 디렉토리 또는 폴더, 드라이브가 포함될 수 있습니다.

참고

FileLen  함수를 호출할 때 지정된 파일이 열려 있으면 반환되는 값은 그 파일을 열기 전의 파일 크기를 나타냅니다.

메모 열려 있는 파일의 길이는 LOF  함수를 사용하여 얻습니다.

FileLen 함수 예제

이 예제는 FileLen 함수를 사용하여 바이트 단위의 파일의 길이를 반환합니다. 이 예제의 목적을 위해 TESTFILE가 일부 데이터를 포함하는 파일이라고 가정합니다.

  Dim MySize

  MySize = FileLen("TESTFILE")  ' 파일 길이(바이트)를 반환합니다.


◆ FreeFile 함수

Open 문에 사용할 수 있는 다음 파일 번호를 나타내는 Integer를 반환합니다.

구문  FreeFile[(rangenumber)]

선택 항목인 rangenumber 인수에는 다음의 사용 가능한 번호가 반환되는 범위를 지정하는 Variant

를 사용합니다. 기본값 0을 지정하면 1 - 255 범위에 있는 파일 번호를 반환하고, 1을 지정하면 256 - 511 범위에 있는 파일 번호를 반환합니다.

참고 파일 번호가 이미 사용되지는 않았는지 확인하기 위해 FreeFile을 사용합니다.

FreeFile 함수 예제  이 예제는 다음으로 사용 가능한 파일 번호를 반환하기 위해 FreeFile 함수를 사용합니다. 루프 내에는 출력용으로 다섯 개의 파일이 열리며 각각의 파일에는 몇 가지 예제 데이터가 작성됩니다.

Dim MyIndex, FileNumber

For MyIndex = 1 To 5 ' 5회 반복합니다.

     FileNumber = FreeFile    ' 사용하지 않은 파일 번호를 가져옵니다.

     Open "TEST" & MyIndex For Output As #FileNumber    ' 파일 이름을 작성합니다.

     Write #FileNumber, "This is a sample."      ' 출력합니다.

     Close #FileNumber        ' 파일을 닫습니다.

Next MyIndex


◆ GetAttr 함수

파일, 디렉토리, 또는 폴더 속성을 나타내는 Integer를 반환합니다.

구문  GetAttr(pathname)

pathname 인수는 파일 이름을 지정하는 문자열 식이며 필수적으로 사용됩니다. 이 pathname에는 디렉토리 또는 폴더, 드라이브가 포함될 수 있습니다.

반환값 GetAttr가 반환한 값은 다음 속성값들의 합입니다.

상수            값       설명

vbNormal       0       표준

vbReadOnly      1       읽기 전용

vbHidden        2       숨겨짐

vbSystem       4       시스템

vbDirectory      16      디렉토리 또는 폴더

vbArchive       32      마지막 백업 후에 파일이 변경되었습니다.

메모   응용 프로그램용 Visual Basic에 의해 이 상수를 지정합니다. 코드에서 이 이름을 실제 값 대신 사용할 수 있습니다.

참고   어떤 속성이 설정되었는지 결정하기 위해서는 And 연산자를 사용하여 GetAttr 함수가 반환한 값과 원하는 개개의 파일 속성값을 비트 단위 비교를 수행합니다. 결과가 0이 아니면 명명된 파일에 그 속성이 설정된 것입니다. 예를 들면, 문서 속성이 설정되지 않았다면 다음 And 식의 반환값은 0이 됩니다.

  Result = GetAttr(FName) And vbArchive

보관 속성이 설정되어 있다면 0이 아닌 값이 되돌려 집니다.

비트 단위 비교

두 숫자 식으로 표현된 동일한 위치의 비트간의 비트 단위의 비교를 의미합니다.

GetAttr 함수 예제  이 예제는 GetAttr 함수를 사용하여 파일과 디렉토리 또는 폴더의 속성을 결정합니다.

Dim MyAttr

  ' 파일 TESTFILE이 숨겨진 속성 설정을 가지고 있음을 가정합니다.

MyAttr = GetAttr("TESTFILE")    ' 2를 반환합니다.

  ' 숨겨진 속성이 TESTFILE에 설정되면 0이 아닌 값을 반환합니다.

Debug.Print MyAttr And vbHidden  


  ' 파일 TESTFILE이 숨겨진 속성과 읽기 전용 속성 설정을 가지고 있음을 가정합니다.

MyAttr = GetAttr("TESTFILE")    ' 3을 반환합니다.

  ' 숨겨진 속성이 TESTFILE에 설정되면 0이 아닌 값을 반환합니다.

Debug.Print MyAttr And (vbHidden + vbReadOnly)    

  ' MYDIR이 디렉토리 또는 폴더라고 가정합니다.

MyAttr = GetAttr("MYDIR")       ' 16을 반환합니다.


◆ Input 함수

Input 또는 Binary 모드로 연 파일로부터 문자가 들어 있는 String을 반환합니다.

구문  Input(number, [#]filenumber)

Input 함수는 다음과 같은 구성 요소로 되어 있습니다.

PIC34a7.gif구성 요소       설명

number          필수. 반환할 문자 수를 지정하는 유효한 숫자 식 입니다.

Filenumber      필수. 유효한 파일 번호 입니다.

참고

Input 함수로 읽은 데이터는 대개 Print # 또는 Put을 사용하여 파일에 작성됩니다. Input 또는 Binary 모드로 연 파일의 경우에만 이 함수를 사용하십시오.

Input # 문과는 달리 Input 함수는 콤마, 캐리지 리턴, 라인 피드, 기호, 앞쪽 공백 등을 포함하여 읽은 문자를 모두 반환합니다.

Binary 액세스용으로 연 파일의 경우, EOF가 True를 반환하기 전에 Input 함수로 파일을 읽으려고 하면 오류가 발생합니다. Input으로 이진 파일을 읽을 때에는 EOF 대신 LOF와 Loc를 사용하고, EOF 함수를 사용할 때에는 Get을 사용하십시오.

메모   텍스트 파일에 들어 있는 바이트 데이터에 대해서는 InputB 함수를 사용하십시오. InputB를 사용하는 경우 number는 반환할 문자 수가 아닌 반환할 바이트 수를 지정합니다.

파일 번호

파일을 열기 위해 Open 문에서 사용하는 숫자를 의미합니다. 다른 응용 프로그램에 액세스할 수 없는 파일에는 1에서 255까지의 범위에 포함된 파일 번호를 사용합니다. 다른 응용 프로그램으로부터 액세스할 수 있는 파일에는 256에서 511까지의 파일 번호를 사용합니다.

Input 함수 예제

다음은 파일로부터 한번에 하나의 문자를 읽어와 [디버그] 창에 출력하기 위해 Input 함수를 사용하는 예제입니다. 이 예제에서 TESTFILE은 여러 줄에 걸친 예제 데이터를 가진 텍스트 파일로 가정합니다.

Dim MyChar

Open "TESTFILE" For Input As #1      ' 파일을 엽니다.

Do While Not EOF(1)   ' 파일의 끝을 만날 때까지 반복합니다.

    MyChar = Input(1, #1)    ' 한 문자를 가져옵니다.

    Debug.Print MyChar      ' 디버그 창에 출력합니다.

Loop

Close #1     ' 파일을 닫습니다.


◆ Loc 함수

열려 있는 파일에서 현재의 읽기/쓰기 위치를 지정하는 Long을 반환합니다.

구문  Loc(filenumber)

필수 항목인 filenumber 인수에는 유효한 Integer 파일 번호가 사용됩니다.

참고

다음은 각 파일 액세스 모드의 반환값에 대한 설명입니다.

모드

반환값

Random

Sequential

 

Binary

파일로부터 읽거나 파일에 작성된 마지막 레코드 번호입니다.

128로 나눈 파일에서의 현재 바이트 위치입니다. 그러나 순차 파일의 경우 Loc이 반환하는 정보는 사용하지 않으며 필요하지도 않습니다.

읽거나 작성된 마지막 바이트 위치입니다.

파일 번호

파일을 열기 위해 Open 문에서 사용하는 숫자를 의미합니다. 다른 응용 프로그램에 액세스할 수 없는 파일에는 1에서 255까지의 범위에 포함된 파일 번호를 사용합니다. 다른 응용 프로그램으로부터 액세스할 수 있는 파일에는 256에서 511까지의 파일 번호를 사용합니다.

Loc 함수 예제

다음은 열려진 파일 내에 현재 읽기/쓰기 위치를 반환하기 위해 Loc 함수를 사용하는 예제입니다. 이 예제에서 TESTFILE은 여러 줄에 걸친 예제 데이터를 가진 텍스트 파일로 가정합니다.

Dim MyLocation, MyLine

Open "TESTFILE" For Binary As #1    ' 방금 작성된 파일을 엽니다.

Do While MyLocation < LOF(1)        ' 파일의 끝을 만날 때까지 반복합니다.

    MyLine = MyLine & Input(1, #1)   ' 문자를 변수로 읽어들입니다.

    MyLocation = Loc(1)              ' 파일 안의 현재 위치를 가져옵니다.

    Debug.Print MyLine; Tab; MyLocation   ' 디버그 창에 출력합니다.

Loop

Close #1     ' 파일을 닫습니다.


◆ LOF 함수

Open 문으로 연 파일의 크기를 바이트 단위로 나타내는 Long을 반환합니다.

구문  LOF(filenumber)

필수 항목인 filenumber 인수로는 유효한 파일 번호가 들어 있는 Integer를 사용합니다.

메모   FileLen 함수를 사용하여 열려 있지 않은 파일 길이를 얻을 수 있습니다.

LOF 함수 예제

다음은 열려진 파일의 크기를 결정하기 위해 LOF 함수를 사용하는 예제입니다. 이 예제에서 TESTFILE은 예제 데이터를 포함하고 있는 텍스트 파일로 가정합니다.

Dim FileLength

Open "TESTFILE" For Input As #1      ' 파일을 엽니다.

FileLength = LOF(1)   ' 파일의 길이를 구합니다.

Close #1        ' 파일을 닫습니다.


◆ Seek 함수

Open 문으로 열린 파일 안의 현재 읽기/쓰기 위치를 지정하는 Long을 반환합니다.

구문  Seek(filenumber)

필수 항목인 filenumber 인수는 유효한 파일 번호가 들어 있는 Integer를 사용합니다.

참고  Seek는 1에서 2,147,483,647(2^31 - 1와 동일함) 사이의 값을 반환하며 포괄적입니다.

다음은 각 파일 액세스 모드에 대한 반환값에 대해 설명합니다.

모드

반환값

Random

Binary

Output

Append

Input

읽거나 쓸 다음 레코드 번호입니다.

다음 연산이 발생하는 바이트 위치로 파일의 첫째 바이트는 위치 1에, 둘째 바이트는 위치 2에, 그 이하도 마찬가지 방법으로 위치합니다.

Seek 함수 예제  다음은 현재 파일 위치를 반환하기 위해 Seek 함수를 사용하는 예제입니다.

이 예제에서 TESTFILE은 사용자 정의 형식인 레코드(Record)형으로 된 레코드를 포함하는 파일로 가정합니다.

Type Record  ' 사용자 정의 형식을 정의합니다.

     ID As Integer

     Name As String * 20

End Type                                          

랜덤 모드로 열려진 파일에 대해서 Seek는 다음 레코드 번호를 반환합니다.

Dim MyRecord As Record      ' 변수를 선언합니다.

Open "TESTFILE" For Random As #1 Len = Len(MyRecord)

Do While Not EOF(1)   ' 파일의 끝을 만날 때까지 반복합니다.

    Get #1, , MyRecord       ' 다음 레코드를 읽습니다.

    Debug.Print Seek(1)       ' 디버그 창에 레코드 번호를 출력합니다.

Loop

Close #1     ' 파일을 닫습니다.

Random 모드 이외의 다른 모드로 열려진 파일에 대해서는 Seek는 다음 동작이 일어날 바이트 위치를 반환합니다. TESTFILE은 수 줄의 문자열을 포함한 파일로 가정합니다.

Dim MyChar

Open "TESTFILE" For Input As #1      ' 입력을 위해 파일을 엽니다.

Do While Not EOF(1)  ' 파일의 끝까지 반복합니다.

     MyChar = Input(1, #1)    ' 데이터의 다음 문자를 읽어 들입니다.

     Debug.Print Seek(1)       ' 디버그 창에 바이트 위치를 출력합니다.

Loop

Close #1      ' 파일을 닫습니다.














●기타함수


◆ Array 함수

배열이 포함된 Variant를 반환합니다.

구문  Array(arglist)

필수적인 arglist 인수는 Variant에 있는 배열의 요소에 지정된 쉼표로 구분된 값 목록입니다. 지정된 인수가 없으면 길이가 0인 배열을 만듭니다.

참고

배열의 요소를 참조하는 데 사용하는 표시는 변수 이름과 이 이름 뒤에 오는 원하는 요소를 나타내는 색인 번호가 있는 괄호로 되어있습니다. 다음 예에서 첫번째 은 변수 A를 Variant로 만들고 두 번째 문은 배열을 변수 A에 지정하며, 마지막 문은 두 번째 배열 요소값을 다른 변수에 지정합니다.

   Dim A As Variant

   A = Array(10,20,30)

   B = A(2)

Array 함수로 만든 배열의 하위 제한 범위는 0입니다. 다른 배열 형식과는 달리 Option Base 문에 지정된 하위 제한 범위의 영향을 받지 않습니다.

메모

배열로 선언되지 않은 Variant에도 배열이 포함될 수 있습니다. Variant 변수는 고정 길이 문자열이나 사용자 정의 형식을 제외하면 어떤 형식의 배열이라도 포함할 수 있습니다. 배열을 포함하는 Variant는 요소가 Variant 형식인 배열과 개념은 다르지만 배열 요소를 액세스하는 방식은 같습니다.

Array 함수 예제

다음은 Array 함수로 배열이 포함된 Variant를 반환하는 예입니다.


Dim MyWeek, MyDay

MyWeek = Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")

' 하위 제한 범위를 1로 설정하는 값을 반환합니다(Option Base 문 ' 사용).

MyDay = MyWeek(2)  ' MyDay에는 "Tue"가 들어갑니다.

MyDay = MyWeek(4)  ' MyDay에는 "Thu"가 들어갑니다.



배열

동일한 고유 데이터 형식을 가진, 연속적으로 인덱스된 구성 요소 집합을 의미합니다. 배열의 각 구성 요소는 고유의 식별 인덱스 번호를 가지고 있습니다. 배열의 한 구성 요소를 변화시켜도 다른 구성 요소는 영향을 받지 않습니다.

Variant 데이터 형식

특수 값인 Empty와 Null뿐만 아니라 숫자, 문자열, 날짜 데이터를 저장할 수 있는 특수 데이터 형식을 의미합니다. 데이터 형식은 16바이트의 수 저장 크기를 가지고 있어 Decimal 범위까지의 데이터를 포함할 수 있거나 22바이트 크기의 문자 저장 크기(양의 문자열 길이)를 가지고 있어 문자 텍스트를 저장할 수 있습니다. VarType 함수는 Decimal에서 어떻게 데이터가 취급되는지를 정의합니다. 만일 일부 다른 데이터 형식처럼 명시적으로 선언하지 않으면 모든 변수는 Decimal 데이터 형식이 됩니다.

한 가지 종류의 수행, 선언, 또는 정의를 표현하는 문장 구성상 완전한 단위를 의미합니다. 문은 일반적으로 한 줄을 차지하지만 사용자가 콜론 (:) 을 사용하여 한 줄에 하나 이상의 문을 포함할 수 있습니다. 사용자는 또한 줄 연속 문자(_)를 사용하여 하나의 논리 줄을 제 2 논리줄에 연결할 수 있습니다.

사용자 정의 형식

Type 문을 사용하여 정의된 데이터 형식을 의미합니다. 사용자 정의 데이터 형식은 하나 이상의 데이터 형식 요소를 포함할 수 있습니다. 사용자 정의 및 다른 데이터 형식의 배열은 Dim 문을 사용하여 만들어집니다. 형식의 배열은 사용자 정의 형식 안에 포함될 수 있습니다.

제품별 정보

Array 함수와 Option Base

도움말에서는 Array 함수 상태가 Option Base 설정에 영향을 받지 않는다고 나와 있습니다. 이것은 옳지 않습니다. 실제 상황은 다음과 같습니다. Array 함수의 이름을 VBA.Array로 정하면 Option Base 설정이 무시됩니다. Array가 부적합하면, Option Base 설정에 따라 배열의 하한선이 결정됩니다.






◆◆ Type Conversion 함수 ◆◆

다음 함수는 식을 특정한 데이터 형식으로 변환합니다.

구문

  CBool(expression)

  CByte(expression)

  CCur(expression)

  CDate(expression)

  CDbl(expression)

  CDec(expression)

  CInt(expression)

  CLng(expression)

  CSng(expression)

  CVar(expression)

  CStr(expression)

필수 항목인 expression 인수로는 모든 문자열 식이나 숫자 식을 사용할 수 있습니다.

반환값

함수 이름에 따른 반환 값의 형식은 아래와 같습니다

함수

반환 자료형

expression 인수의 범위

Cbool

Boolean

적절한 문자열 식이나 숫자 식.

Cbyte

Byte

0에서 255까지의 숫자.

Ccur

Currency

-922,337,203,685,477.5808에서 922,337,203,685,477.5807.

Cdate

Date 

모든 적절한 날짜 식.

CDbl

Double

음수값인 경우 -1.79769313486232E308에서 -4.94065645841247E-324까지.

양수값인 경우 4.94065645841247E-324에서 1.79769313486232E308까지.

Cdec

Decimal

소수점 이하 단위가 없는 경우 +/-79,228,162,514,264,337,593,543,950,335

소수점 이하 28자릿수의 값으로써 그 범위는 +/-7.9228162514264337593543950335.

가장 작은 표현 가능한 숫자는 0.0000000000000000000000000001.

Cint

Integer

-32,768에서 32,767까지. 나머지는 반올림함.

CLng

Long

-2,147,483,648에서 2,147,483,647까지; 나머지는 반올림함.

CSng

Single

음수값인 경우 -3.402823E38에서 -1.401298E-45까지.

양수값인 경우 1.401298E-45에서 3.402823E38까지.

CVar

Variant

숫자인 경우 Double과 같은 범위. 숫자가 아닌 경우 String과 같은 범위.

CStr

String

expression 인수에 따라 Cstr을 반환함.

참고 

expression이 변환되는 데이터 형식 범위 밖의 값을 반환하는 경우, 오류가 발생합니다.

일반적으로 계산의 결과값을 기본 자료형이 아닌 특정 자료형으로 표현하고자 하는 경우 데이터 형식 변환 함수를 사용합니다. 예를 들면, 단정도나 배정도 또는 정수 계산 대신 통화 계산을 하도록 하려면 CCur 함수를 사용합니다.

국제적으로 인식되는 데이터 형식 변환을 위해서는 Val 함수보다는 데이터 형식 변환을 사용해야 합니다. 예를 들면, CCur 함수를 사용하면 십진 구분자, 천 단위 구분자와 다양한 통화 옵션이 사용자 컴퓨터의 로케일 환경 설정 내용에 따라 적절하게 인식됩니다.

소수점 이하 부분이 정확히 0.5일 때, CInt과 CLng 함수는 항상 가장 가까운 짝수로 반올림한 후 처리합니다. 예를 들면 0.5는 0으로 반올림하고, 1.5는 2로 반올림합니다. CInt과 CLng 함수는 소수점 이하 부분을 반올림하지 않고 버리는 등의 다양한 계산을 하며, 또한 Fix와 Int 함수는 전달된 값과 같은 데이터 형식의 값만을 반환합니다.

IsDate 함수문은 date를 날짜나 시간으로 변환할 수 있는지 검사할 때 사용합니다. CDate함수는 허용 가능한 날짜 범위 안의 숫자뿐만 아니라 Date 문자열과 시간 문자열을 인식합니다. 숫자를 날짜로 변환할 때는 숫자 전체가 날짜로 바뀌며, 숫자 중 소수점 부분은 자정을 시작으로 하여 시간 단위로 변환합니다.

CDate 함수는 사용자의 컴퓨터 로케일 환경 설정 내용에 맞게 날짜 형식을 인식합니다. 연, 월, 일이 인식 가능한 날짜 설정 중 하나가 아닌 형식으로 주어지는 경우 해당되는 날짜 형식의 올바른 순서를 결정할 수 없습니다. 긴 날짜 형식은 주중 요일 문자열을 포함하는 경우 인식할 수 없습니다.

CVDate 함수는 이전 Visual Basic 버전과의 호환성을 위하여 사용할 수 있습니다. CVDate 함수의 구문은 CDate 함수와 동일하나, CVDate 함수는 실제 Date 형식 대신 하위 형식이 Date인 Variant의 값을 반환하는 점이 다릅니다. 현재는 고유한 Date 형식이 있기때문에 CVDate 함수를 더이상 사용하지 않습니다. 식의 값을 Date 형식으로 변환하고, 이 변환된 값을 Variant 형식에 할당할 경우 결과 값은 같습니다. 이러한 방법으로 다른 모든 고유의 데이터 형식을 동일한 형식의 Variant 하위 형식으로 변환할 수 있습니다.

메모  CDec 함수는 별도의 데이터 형식을 반환하지 않고 Decimal 하위 형식으로 변환된 Variant 형의 자료를 반환합니다.

날짜 식

날짜로 해석될 수 있는 모든 식을 의미하는데 날짜 리터럴, 날짜처럼 보이는 숫자, 날짜처럼 보이는 문자열, 함수로부터 받은 날짜를 포함합니다. 날짜 식은 숫자나 문자열의 조합으로 제한되며 날짜를 100년 1월 1일 부터 9999년 12월 31일까지 나타낼 수 있습니다.

날짜는 실수의 일부로 저장됩니다. 소수점의 왼쪽 값은 날짜를 나타내며 오른쪽 값은 시간을 나타냅니다. 음수는 1899년 12월 30일 이전을 나타냅니다.

Boolean 데이터 형식

두 개의 가능값인 True (-1) 나 False (0) 값만을 갖는 데이터 형식. Boolean 값은 16비트 (2바이트) 숫자로 저장됩니다.

Byte 데이터 형식

0 에서 255 까지의 범위를 갖는 양의 정수를 갖도록 사용되는 데이터 형식을 의미합니다. 바이트 값은 부호가 없는 8비트(1바이트) 단일 숫자로 저장됩니다.

Currency 데이터 형식

922,337,203,685,477.5808에서 922,337,203,685,477.5807까지의 범위를 갖는 데이터 형식을 의미합니다. 이 데이터 형식은 돈 관련 계산이나 정확도를 중요시하는 고정점 계산에 사용합니다. 값 기호(@) 형식 선언 문자는 Visual Basic 에서 Currency를 나타냅니다.

Date 데이터 형식

실수로 날짜와 시간을 저장하는 데이터 형식을 의미합니다. 날짜 변수는 64비트(8바이트) 숫자로 저장됩니다. 소수점 왼쪽의 값은 날짜를 나타내고 소수점 오른쪽의 값은 시간을 의미합니다.

Double 데이터 형식

64비트 숫자로 배정도 부동 소수점을 나타내는 데이터 형식으로 음수는 -1.79769313486232E308에서 -4.94065645841247E-324까지의 범위를 가지고 있고 양수는 4.94065645841247E-324에서 1.79769313486232E308까지의 범위를 가지고 있습니다. Visual Basic에서 숫자 기호 (#) 형식 선언 문자는 Double을 나타냅니다.

Decimal 데이터 형식

10승 단위로 크기 표현되는 소수점 숫자를 포함하는 데이터 형식을 의미합니다. 소수점이 없는 경우인 0승 크기의 숫자는 그 범위가 +/-79,228,162,514,264,337,593,543,950,335이 됩니다. 소수점 이하의 수가 28개인 경우는 그 범위가 +/-7.9228162514264337593543950335이 됩니다. Decimal 데이터 형식으로 표현될 수 있는 가장 작은 0이 아닌 숫자는 0.0000000000000000000000000001입니다.

여기서 Decimal 데이터 형식은 Variant 내에서만 사용할 수 있다는 것을 주의하십시오. 사용자는 변수를 Decimal 형식으로 선언할 수 없습니다. 하지만 사용자는 CDec 함수를 사용하여 하위 형식이 Decimal인 Variant를 만들 수 있습니다.

Integer 데이터 형식

-32,768에서 32,767까지의 범위에서 2바이트 전체 숫자로 저장된 정수 변수를 갖는 데이터 형식을 의미합니다. Integer 데이터 형식은 또한 계산된 값을 나타내는데 사용됩니다. 퍼센트 기호(%)형식 선언 문자는 Visual Basic에서 Integer로 나타냅니다.

Long 데이터 형식

-2,147,483,648에서 2,147,483,647까지의 범위를 갖는 4바이트 정수를 의미합니다. 앰퍼샌드(

&) 형식 선언 문자는 Visual Basic에서 Long으로 나타납니다.

Single 데이터 형식

단정도 부동 소수점 변수를 32비트(2바이트)의 부동 소수점 숫자로 저장하는 데이터 형식을 의미하며, 값의 범위는 음수의 경우 -3.402823E38에서  -1.401298E-45까지이고 양수의 경우 1.401298E-45에서 3.402823E38까지입니다. 느낌표 포인트(!) 형식 선언 문자는 Visual Basic에서 Single을 나타냅니다.

Variant 데이터 형식

특수 값인 Empty와 Null뿐만 아니라 숫자, 문자열, 날짜 데이터를 저장할 수 있는 특수 데이터 형식을 의미합니다. 데이터 형식은 16바이트의 수 저장 크기를 가지고 있어 Decimal 범위까지의 데이터를 포함할 수 있거나 22바이트 크기의 문자 저장 크기(양의 문자열 길이)를 가지고 있어 문자 텍스트를 저장할 수 있습니다. VarType 함수는 Decimal에서 어떻게 데이터가 취급되는지를 정의합니다. 만일 일부 다른 데이터 형식처럼 명시적으로 선언하지 않으면 모든 변수는 Decimal 데이터 형식이 됩니다.

String 데이터 형식

숫자값이 아니라 문자 자체를 나타내는 계속된 문자의 나열로 이루어진 데이터 형식을 의미합니다. String은 머리글자, 숫자, 공백, 구두점을 포함할 수 있습니다. String 데이터 형식은 길이 범위가 0에서 대략 63K인 문자인 고정 길이 문자열을 저장할 수 있으며 길이의 범위가 0에서 대략 20억 문자인 동적 문자열을 저장할 수 있습니다. Visual Basic에서 달러 기호 ($) 형식 선언 문자는 String을 나타냅니다.


로케일

주어진 언어와 나라에 해당되는 정보 집단을 의미합니다. 코드 로케일 설정은 키워드 같은 항목을 기록할 언어에 영향을 주고 소수점과 목록 구분자, 날짜 형식, 그리고 문자 정렬 순서와 같은 로케일 세부 설정을 정의합니다.

시스템 로케일 설정은 지역 인식 기능이 동작 방식에 영향을 줍니다. 예를 들면 사용자가 숫자를 표시하거나 문자열을 날짜로 변환할 때가 있습니다. 사용자는 운영 체제에서 제공하는 [제어판] 유틸리티를 사용하여 시스템 로케일을 설정합니다.

코드 로케일과 시스템 로케일은 일반적으로 동일하게 설정하지만, 상황에 따라 달라질 수 있습니다. 예를 들면, Visual Basic, Standard Edition과 Visual Basic, Professional Edition에서 코드는 English-U.S로부터 번역되지 않습니다. 시스템 로케일은 사용자의 언어와 나라에 맞게 설정될 수 있지만 코드 로케일은 항상 English-U.S.로 설정되어 있고 변하지 않습니다. 이 경우에서는 English-U.S. 구분자, 형식 자리표시자, 그리고 정렬 순서가 사용됩니다.

날짜 리터럴

수 기호(#)로 둘러싸인 유효 형식으로 나열된 문자를 의미합니다. 유효 형식에는 사용자 코드용 지역 설정이나 일반 날짜 유형에 의해 지정되는 날짜 형식을 포함합니다.

예를 들면 #12/31/96#은 1996년 12월 31일을 나타내는 날짜 표현 문자이며, English-U.S.는 사용자의 응용 프로그램을 위한 지역 설정입니다. 국가별 언어간의 통용성을 극대화하기 위해서 날짜 리터럴를 사용합니다.

CBool 함수 예제

이 예제는 CBool 함수를 사용하여 Boolean으로 식을 변환합니다. 식이 0 이 아닌 값을 평가하면 CBool은 True를 반환하고 그렇지 않으면 False를 반환합니다.

   Dim A, B, Check

   A = 5: B = 5             ' 변수를 초기화합니다.

   Check = CBool(A = B)     ' Check이 True를 포함합니다.

   A = 0 ' Define variable.

   Check = CBool(A)          ' Check이 False를 포함합니다.

CByte 함수 예제

이 예제는 CByte 함수를 사용하여 Byte로 식을 변환합니다.

   Dim MyDouble, MyByte

   MyDouble = 125.5678            ' MyDouble이 Double입니다.

   MyByte = CByte(MyDouble)     ' MyByte가 126을 포함합니다.

CCur 함수 예제

이 예제는 CCur 함수를 사용하여 Currency로 식을 변환합니다.

   Dim MyDouble, MyCurr

   MyDouble = 543.214588          ' MyDouble은 Double입니다.

   MyCurr = CCur(MyDouble * 2)  ' MyDouble * 2 (1086.429176)의 결과를 Currency(1086.4292)로 변환합니다.

                  '

CDate 함수 예제

이 예제는 CDate 함수를 사용하여 Date로 문자열을 변환합니다. 일반적으로 이 예제에 나타난 바와 같이 하드 코드 문자열로 된 날짜와 시간은 권장되지 않으며 대신에 #2/12/1969#, #4:45:23 PM#와 같은 날짜와 시간 문자를 사용합니다.

   Dim MyDate, MyShortDate, MyTime, MyShortTime

   MyDate = "February 12, 1969"   ' 날짜를 정의합니다.

   MyShortDate = CDate(MyDate)  ' 날짜 데이터 형식을 변환합니다.

   MyTime = "4:35:47 PM"         ' 시간을 정의합니다.

   MyShortTime = CDate(MyTime) ' 날짜 데이터 형식을 변환합니다.

CDbl 함수 예제

이 예제는 CDbl 함수를 사용하여 Double로 식을 변환합니다.

   Dim MyCurr, MyDouble

   MyCurr = CCur(234.456784)                       ' MyCurr는 Currency입니다.

   MyDouble = CDbl(MyCurr * 8.2 * 0.01)   ' 결과를 Double로 변환합니다.

CInt 함수 예제

이 예제는 CInt 함수를 사용하여 Integer로 값을 변환합니다.

   Dim MyDouble, MyInt

   MyDouble = 2345.5678  ' MyDouble은 Double입니다.

   MyInt = CInt(MyDouble) ' MyInt는 2346을 포함합니다.

CLng 함수 예제

이 예제는 CLng 함수를 사용하여 Long으로 값을 변환합니다.

   Dim MyVal1, MyVal2, MyLong1, MyLong2

   MyVal1 = 25427.45: MyVal2 = 25427.55   ' MyVal1, MyVal2는 Double입니다.

   MyLong1 = CLng(MyVal1)                       ' MyLong1이 25427을 포함합니다.

   MyLong2 = CLng(MyVal2)                  ' MyLong2이 25428을 포함합니다.

CSng 함수 예제

이 예제는 CSng 함수를 사용하여 Single로 값을 변환합니다.

   Dim MyDouble1, MyDouble2, MySingle1, MySingle2  ' MyDouble1, MyDouble2는 Double입니다.

   MyDouble1 = 75.3421115: MyDouble2 = 75.3421555

   MySingle1 = CSng(MyDouble1)                     ' MySingle1이 75.34211을 포함합니다.

   MySingle2 = CSng(MyDouble2)                   ' MySingle2이 75.34216을 포함합니다.

CStr 함수 예제

이 예제는 CStr 함수를 사용하여 String으로 숫자 값을 변환합니다.

   Dim MyDouble, MyString

   MyDouble = 437.324            ' MyDouble은 Double입니다.

   MyString = CStr(MyDouble)    ' MyString이 "437.324"을 포함합니다.

CVar 함수 예제

이 예제는 CVar 함수를 사용하여 Variant로 식을 변환합니다.

   Dim MyInt, MyVar

   MyInt = 4534                   ' MyInt는 정수입니다.

   MyVar = CVar(MyInt & "000")  ' MyVar가 문자열 4534000을 포함합니다.


◆ CreateObject 함수

ActiveX 개체에 대한 참조를 만들거나 반환합니다.

구문  CreateObject(class)

class 인수는 appname.objecttype 구문을 사용하고 다음과 같은 구성 요소로 되어 있습니다.

구성 요소

설명

appname 

objecttype

필수 사항이며, Variant (String). 개체를 제공하는 응용 프로그램 이름

필수 사항이며, Variant (String). 개체의 형식과 클래스 이름

참고 

자동화를 지원하는 응용 프로그램은 개체 형식을 한 가지 이상 제공합니다. 예를 들어, 워드 프로세서는 Application 개체, Document 개체, Toolbar 개체를 제공합니다.

ActiveX 개체를 제공하려면 CreateObject에서 반환된 개체를 개체 변수에 지정합니다.

' 개체 변수가 개체 참조를 취하도록 선언합니다.

' Dim as Object를 사용하면 연결이 늦어집니다.

Dim ExcelSheet As Object

Set ExcelSheet = CreateObject("Excel.Sheet")

이 코드는 개체, 이 경우는 Microsoft Excel 스프레드시트를 만드는 응용 프로그램을 시작합니다. 일단 개체가 만들어지면, 지정한 개체 변수를 사용하여 코드에서 이 개체를 참조합니다. 다음 예제에서는 개체 변수, ExcelSheet, 그리고 Application 개체와 Cells 컬렉션을 포함한 기타 Microsoft Excel 개체을 사용하여 새 개체의 속성메서드를 액세스합니다.

   ExcelSheet.Application.Visible = True      ' Application 개체로 Make Excel을 표시합니다.

   ExcelSheet.Cells(1, 1).Value = "A열,1행입니다."    ' 시트의 첫 번째 셀에 문자열을 넣습니다.

   ExcelSheet.SaveAs "C:\ TEST.DOC"    ' 시트를 C:\test.doc 디렉토리에 저장합니다.

   ExcelSheet.Application.Quit    ' Application 개체의 Quit 메서드로 Excel을 닫습니다.

   Set ExcelSheet = Nothing    ' 개체 변수를 해제합니다.

개체 변수를 As Object 절로 선언하면 모든 형식의 개체 참조를 포함할 수 있는 변수가 만들어집니다. 변수를 통해 액세스하면 나중에 바운드됩니다. 즉 프로그램을 실행할 때 연결됩니다. 먼저 연결되는, 즉 프로그램을 컴파일할 때 바운드되는 개체 변수를 만들려면 개체 변수를 특정 클래스 ID로 선언합니다. 다음은 Microsoft Excel 참조를 선언하고 만드는 예제입니다.

   Dim xlApp As Excel.Application

   Dim xlBook As Excel.Workbook

   Dim xlSheet As Excel.WorkSheet

   Set xlApp = CreateObject("Excel.Application")

   Set xlBook = xlApp.Workbooks.Add

   Set xlSheet = xlBook.Worksheets(1)

일찍 바운드된 변수로 참조하면 성능이 향상되지만 선언에서 지정된 클래스에 대한 참조만 포함됩니다.

CreateObject 함수에서 반환된 개체를 인수와 같은 개체를 예상하는 함수에 전달할 수 있습니다. 예를 들어, 다음 코드는 Excel.Application 개체에 대한 참조를 만들어 전달합니다.

Call MySub (CreateObject("Excel.Application"))

메모 

개체의 현재 인스턴스가 없으면 CreateObject를 사용하십시오. 이미 실행 중인 개체의 인스턴스가 있으면 새 인스턴스가 시작되고 지정한 형식의 개체가 만들어집니다. 현재 인스턴스를 사용하거나 응용 프로그램을 시작하고 파일을 불러오려면 GetObject 함수를 사용하십시오.

개체가 단일 인스턴스 개체로 등록되었으면 CreateObject를 몇 번을 실행해도 개체의 인스턴스는 하나만 만들어집니다.



클래스

개체의 형식적 정의를 의미합니다. 클래스는 수행 중 개체의 인스턴스가 만들어지는 서식 파일처럼 수행됩니다. 클래스는 개체의 속성과 개체의 동작을 제어하는 방법을 정의합니다.

개체 변수

개체에 대한 참조를 포함하는 변수를 의미합니다.

속성

개체의 명명된 속성을 의미합니다. 속성은 크기, 색상, 화면 위치와 같은 개체의 특성이나 가능 또는 불가능과 같은 개체의 상태를 정의합니다.

메서드

개체에 실행되는 프로시저를 의미합니다.

선언

상수, 변수 또는 프로시저를 명명하고, 데이터 형식같은 특성을 지정하는 비실행 코드를 의미합니다. DLL 프로시저에 대해서 선언은 이름, 라이브러리, 인수를 지정합니다.

클래스

개체의 형식적 정의를 의미합니다. 클래스는 수행 중 개체의 인스턴스가 만들어지는 서식 파일처럼 수행됩니다. 클래스는 개체의 속성과 개체의 동작을 제어하는 방법을 정의합니다.

CreateObject 함수 예제

다음은 CreateObject 함수로 Microsoft Excel에 참조(xlApp)를 설정하는 예입니다. 참조로 Microsoft Excel의 Visible 속성을 액세스하고 Microsoft Excel Quit 메서드로 종료합니다. 마지막으로 참조가 해제됩니다.

   Dim xlApp As Object  ' 변수가 참조를 취하도록 선언합니다.

   Set xlApp = CreateObject("excel.application")

   xlApp.Visible = True    ' 응용 프로그램을 나타내려면 Visible 속성을 True로 설정합니다.

                          ' xlApp로 Microsoft Excel의 다른 개체를 액세스합니다.

   xlApp.Quit             ' 작업이 끝나면 Quit 메서드로 응용 프로그램을 종료하고 참조를 해제합니다.

   Set xlApp = Nothing


◆ CurDir 함수

현재 경로를 나타내는 Variant (String)를 반환합니다.

구문  CurDir[(drive)]

drive 인수는 존재하는 드라이브를 지정하는 문자열 식이며,선택적으로 사용됩니다.

드라이브를 지정하지 않거나 drive가 길이가 0인 문자열("")이면 CurDir는 현재 드라이브의 경로를 반환합니다.

문자열 식

계속된 문자의 나열을 계산하는 식을 의미합니다. 문자열 식의 요소는 문자열 문자, 문자열 리터럴, 문자열 상수, 문자열 변수, 문자열 Variant를 반환하는 함수 또는 문자열 Variant (VarType 8)를 반환하는 함수를 포함합니다.

CurDir 함수 예제

이 예제는 CurDir 함수를 사용하여 현재 경로를 반환합니다.

' C 드라이브에 현재 경로는 "C:\WINDOWS\SYSTEM"로 가정합니다.

' D 드라이브에 현재 경로는 "D:\EXCEL"로 가정합니다.

' C가 현재 드라이브라고 가정합니다.

Dim MyPath

MyPath = CurDir        ' "C:\WINDOWS\SYSTEM"을 반환합니다.

MyPath = CurDir("C")  ' "C:\WINDOWS\SYSTEM"을 반환합니다.

MyPath = CurDir("D")  ' "D:\EXCEL"을 반환합니다.


◆ CVErr 함수

사용자가 지정한 오류 번호를 포함하는 Error 하위 형식의 Variant를 반환합니다.

구문 CVErr(errornumber)

필수 항목인 rrornumber 인수는 적절한 오류 번호이어야 합니다.

참고  CVErr 함수는 사용자가 작성한 프로시저 안에 사용자 정의 오류를 작성하고자 할 때 사용합니다. 예를 들면, 사용자가 몇몇 인수를 받아들이고 정상적으로 문자열을 반환하는 함수를 작성한 경우, 그 함수로 입력 인수를 평가하여 허용되는 범위 안의 값인지 확인할 수 있습니다. 입력된 인수가 적절한 범위 안에 없을 경우, 그 함수는 원하는 값을 반환하지 않습니다. 이러한 경우에 CVErr 함수는 프로그램 내에서 처리해야 할 내용을 알려주는 오류 번호를 반환합니다.

Error 값을 암시적으로 변환할 수는 없습니다. 예를 들면, 변수에 CVErr의 반환값을 Variant가 아닌 변수에 직접 할당할 수 없으나, CVErr 함수에 의해 반환되는 값을 명시적으로 변환 (CInt나 CDbl 등을 사용) 한다든지, 적절한 데이터 형식의 변수로 할당하여 사용할 수는 있습니다.

오류 번호

0에서 65,535 범위 안에 있는 모든 숫자로 Err 개체의 Number 속성 설정에 부합됩니다. Err 개체의 Name 속성 설정과 결합되면 이 번호는 특별한 오류 메시지를 나타냅니다.

 

Variant 데이터 형식

특수 값인 Empty와 Null뿐만 아니라 숫자, 문자열, 날짜 데이터를 저장할 수 있는 특수 데이터 형식을 의미합니다. 데이터 형식은 16바이트의 수 저장 크기를 가지고 있어 Decimal 범위까지의 데이터를 포함할 수 있거나 22바이트 크기의 문자 저장 크기(양의 문자열 길이)를 가지고 있어 문자 텍스트를 저장할 수 있습니다. VarType 함수는 Decimal에서 어떻게 데이터가 취급되는지를 정의합니다. 만일 일부 다른 데이터 형식처럼 명시적으로 선언하지 않으면 모든 변수는 Decimal 데이터 형식이 됩니다.

프로시저

단위로 실행되는 명명된 문의 나열을 의미합니다. 예를 들면 Function, Property, Sub

가 프로시저의 형식입니다. 프로시저의 이름은 모듈 레벨에서 정의됩니다. 프로시저는 다른 프로시저 내에서 중첩될 수 없습니다.

변수

프로그램 실행 중 수정될 수 있는 데이터를 포함할 수 있는 명명된 저장 위치를 의미합니다. 각 변수는 그것의 범위 안에서 유일하게 식별하는 이름을 가집니다. 데이터 형식은 지정될 수도 있고 안될 수도 있습니다.

변수 이름은 영문으로 시작해야 하고, 같은 범위 안에서 유일해야 하며, 255 문자보다 적어야 되며, 포함 구간이나 형식 선언 문자를 포함할 수 없습니다.

데이터 형식

보유할 수 있는 데이터의 종류를 결정하는 변수의 특성을 의미합니다. 데이터 형식은 Byte, Boolean, Integer, Long, Currency, Decimal, Single, Double, Date, String, Object, Variant (기본값), 그리고 개체의 특정 형식 뿐만 아니라 사용자 정의 형식을 포함합니다.

CVErr 함수 예제

이 예제는 CVErr 함수를 사용하여 VarType이 vbError(10)인 Variant을 반환합니다. 사용자 정의 함수 CalculateDouble은 그것에 전달된 인수가 숫자가 아닐 경우 오류를 반환합니다. 사용자는 CVErr을 사용하여 사용자 정의 오류를 사용자 정의 프로시저로부터 반환하거나 런타임 오류의 처리를 연기할 수 있습니다. IsError 함수를 사용하여 값이 오류를 나타내는지 검사합니다.

Sub Test()                         ' 오류 발생 인수를 가지고 CalculateDouble을 호출합니다.

     Debug.Print CalculateDouble("345.45robert")

End Sub

Function CalculateDouble(Number)    ' CalculateDouble Function 프로시저를 정의합니다.

     If IsNumeric(Number) Then

             CalculateDouble = Number * 2     ' 결과를 반환합니다.

     Else

             CalculateDouble = CVErr(2001)     ' 사용자정의 오류 번호를 반환합니다.

     End If  '

End Function


◆ Dir 함수

지정한 패턴이나 파일 속성, 또는 드라이브 볼륨 이름표(volume label)와 일치하는 파일, 디렉토리, 폴더 이름을 나타내는 String을 반환합니다.

구문  Dir[(pathname[, attributes])]

Dir 함수 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소

설명

pathname

선택. 파일 이름을 지정하는 문자열 식이며, 디렉토리 또는 폴더, 드라이브가 포함될 수 있습니다. Pathname을 찾지 못하면 길이가 0인 문자열("")을 반환합니다.

Attributes

선택. 상수 또는 숫자 식이 되며, 그 합은 파일 속성을 지정합니다.

생략되면 pathname과 일치하는 파일을 모두 반환합니다.

설정  attributes 인수는 다음과 같이 설정되어 있습니다.

상수

설명

vbNormal

vbHidden  

vbSystem

vbVolume

VbDirectory

0

2

4

8

16

표준

숨겨짐

시스템 파일

크기 이름표. 이 값이 지정되면 다른 속성은 모두 무시됨.

디렉토리 또는 폴더

메모 응용 프로그램용 Visual Basic으로 이 상수들을 지정하며 코드에서 실제값 대신에 사용할 수 있습니다.

참고  Dir은 다중 문자(*) 및 단일 문자(?)를 나타내는 대표 문자를 사용하여 다중 파일을 지정할 수 있습니다.

Dir 함수를 호출하면 먼저 pathname을 지정하여야 합니다. 그렇지 않으면 오류가 발생합니다. 파일 속성의 지정도 pathname이 포함되어야 합니다.

Dir은 pathname 과 일치하는 첫번째 파일 이름을 반환합니다. 추가로 pathname과 일치하는 파일 이름을 얻으려면 인수없이 다시 Dir을 호출합니다. 더 이상 일치하는 파일 이름이 없으면 Dir는 길이가 0인 문자열("")을 반환합니다. 길이가 0인 문자열이 반환되면 다시 호출할 때 pathname을 지정해야 합니다. 그렇지 않으면 오류가 발생합니다. 현재 pathname과 일치하는 파일 이름을 모두 불러 오지 않고 새 pathname으로 변경할 수 있습니다. 그러나 순환적으로 Dir 함수를 호출할 수는 없습니다. VbDirectory 속성으로 Dir을 호출하면 하위 디렉토리를 계속적으로 반환하지 않습니다.

특별한 순서 없이 파일 이름을 불러 왔기 때문에 반환된 파일 이름을 배열에 저장한 다음, 그 배열을 정렬할 수 있습니다.

배열

동일한 고유 데이터 형식을 가진, 연속적으로 인덱스된 구성 요소 집합을 의미합니다. 배열의 각 구성 요소는 고유의 식별 인덱스 번호를 가지고 있습니다. 배열의 한 구성 요소를 변화시켜도 다른 구성 요소는 영향을 받지 않습니다.

Dir 함수 예제

이 예제는 Dir 함수를 사용하여 어떤 파일과 디렉토리가 존재하는지 확인합니다.

Dim MyFile, MyPath, MyName   ' 만일 MyFile = Dir("C:\WINDOWS\WIN.INI")이 존재하면 "WIN.INI"를 반환합니다.

   ' 지정된 확장자로 파일 이름을 반환합니다. 둘 이상의 *.ini 파일이 존재하면, 찾은 첫번째 파일을 반환합니다.

MyFile = Dir("C:\WINDOWS\*.INI")    ' 같은 디렉토리에서 그 다음 *.INI 파일을 반환할 인수 없이 Dir을 다시 호출합니다.

MyFile = Dir  

MyFile = Dir("*.TXT", vbHidden)   ' 숨겨진(hidden) 속성을 가진 *.TXT 파일을 먼저 반환합니다.

MyPath = "c:\"   ' 경로를 설정합니다.   ' 디렉토리를 나타내는 C:\에서 이름을 표시합니다.

MyName = Dir(MyPath, vbDirectory)    ' 첫번째 항목을 검색합니다.

Do While MyName <> ""    ' 루프(loop)를 시작합니다.

        ' 현재 디렉토리와 포함하는 디렉토리를 무시합니다.

        If MyName <> "." And MyName <> ".." Then

                ' MyName이 디렉토리인지 확인하기 위해서 비트별(bitwise) 비교를 사용합니다.

                If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then

Debug.Print MyName     ' 항목만 표시합니다

                End If  ' 그것은 디렉토리를 표시합니다.

        End If

        MyName = Dir   ' 다음 항목을 읽어들입니다.

Loop


◆ Error 함수

주어진 오류 번호에 해당하는 오류 메시지를 반환합니다.

구문  Error[(errornumber)]

모든 오류 번호는 선택적 errornumber 인수가 될 수 있습니다. errornumber가 유효하지만 정의가 되지 않은 경우, Error는  읏ë 프로그램 정의 오류 또는 개체 정의 오류" 라는 문자열을 반환합니다. errornumber가 유효하지 않은 경우, 오류가 발생합니다. errornumber를 생략하면 가장 최근의 런타임 오류에 해당하는 메시지를 반환합니다. 런타임 오류가 발생하지 않았거나 errornumber가 0인 경우, Error는 길이가 0인 문자열("")을 반환합니다.

참고

가장 최근의 런타임 오류를 식별하려면 Err 개체 속성 설정을 검사하십시오. Error 함수의 반환값은 Err 개체의 Description 속성에 해당합니다.

오류 번호

0에서 65,535 범위 안에 있는 모든 숫자로 Err 개체의 Number 속성 설정에 부합됩니다. Err 개체의 Name 속성 설정과 결합되면 이 번호는 특별한 오류 메시지를 나타냅니다.

런타임 오류

코드가 실행되는 동안 발생하는 오류를 의미합니다. 런타임 오류는 문이 잘못된 작동을 시도할 때 발생하게 됩니다.

속성

개체의 명명된 속성을 의미합니다. 속성은 크기, 색상, 화면 위치와 같은 개체의 특성이나 가능 또는 불가능과 같은 개체의 상태를 정의합니다.


Error 함수 예제

다음 예제는 Error 함수를 사용하여 지정된 오류 번호에 따른 오류 메시지를 인쇄합니다.

Dim ErrorNumber

For ErrorNumber = 61 To 64    ' 61에서 64까지의 값을 반복합니다.

     Debug.Print Error(ErrorNumber)    ' 오류를 디버그 창에 인쇄합니다.

Next ErrorNumber


◆ GetAutoServerSettings 함수

ActiveX 구성 요소의 등록 상태에 대한 정보를 반환합니다.

구문  object.GetAutoServerSettings([progid], [clsid])

GetAutoServerSettings 함수는 다음의 구성 요소로 되어 있습니다.

구성 요소      설명

object         필수. 적용 대상 목록의 개체를 평가하는 개체 식

progid        선택. 구성 요소의 ProgID를 지정하는 variant 식

clsid          선택. 구성 요소의 CLSID를 지정하는 variant 식

반환값  GetAutoServerSettings 함수는 부여된 ActiveX 구성 요소에 대한 배열 값을 포함하는 Variant를 반환합니다. 인덱스 값과 설명은 다음과 같습니다.

PIC3505.gif  설명

1   ActiveX 구성 요소가 원격 등록된 경우에는 True

2   원격 시스템 이름

3   RPC 네트워크 프로토콜 이름

4   RPC 인증 레벨

참고  값이 누락되었거나 사용할 수 없는 경우, 값은 빈 문자열이 됩니다. 메서드 중 오류가 발생할 경우, 반환값은 Empty 형식의 Variant가 됩니다.

개체 식

특정한 개체를 지정하고 개체의 컨테이너를 포함할 수 있는 식을 의미합니다. 예를 들면 응용 프로그램은 Text 개체가 포함된 Document 개체를 포함한 Application 개체를 가질 수 있습니다.

variant 식

특수 값인 Empty와 Null뿐만 아니라 숫자, 문자열, 날짜 데이터를 계산할 수 있는 식을 의미합니다.

GetAutoServerSettings 함수 예제 

이 예제에서는 "Hello" 라고 명명된 원격 등록 개체 정보를 검색합니다.

Sub ViewHello()

   Dim oRegClass As New RegClass

   Dim vRC As Variant

   vRC = oRegClass.GetAutoServerSettings _

    ("HelloProj.HelloClass")

   If Not(IsEmpty(vRC)) Then

           If vRC(1) Then

                   MsgBox "Hello is registered remotely on a " _

                   & "server named: " & vRC(1)

           Else

                   MsgBox "Hello is registered locally."

           End If

   End if

End Sub


◆ GetObject 함수

파일에서 ActiveX 개체에 대한 참조를 반환합니다.

구문  GetObject([pathname] [, class])

GetObject 함수 구문에는 명명된 인수가 있습니다.

구성 요소

설명

pathname 

 

class

선택 사항; Variant (String). 검색할 개체가 있는 파일과 전체 경로 이름 pathname이 빠져             있으면 class가 필요합니다.

선택 사항; Variant (String). 개체의 클래스를 나타내는 문자열.

클래스 인수는 구문 appname.objecttype을 사용하며 다음과 같은 구성 요소로 되어 있습니다

.

구성 요소

설명

appname 

objecttype

필수 사항; Variant (String). 개체를 제공하는 응용 프로그램 이름.

필수 사항; Variant (String). 만들 개체의 클래스와 형식.

참고

GetObject 함수로 파일에서 ActiveX 개체를 액세스하고 개체를 개체 변수에 지정합니다. Set 문으로 GetObject가 반환한 개체를 개체 변수에 지정합니다.

예:  Dim CADObject As Object

  Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

위 코드를 실행하면 지정된 pathname과 관련된 응용 프로그램이 시작되고 지정된 파일의 개체가 활성화됩니다.

pathname이 길이가 0인 문자열("")이면 GetObject는 지정된 형식의 새 개체 인스턴스를 반환합니다. pathname 인수가 생략되어 있으면 GetObject는 지정된 형식의 현재 개체를 반환합니다. 지정된 형식의 개체가 없으면 오류가 일어납니다.

파일의 일부만 활성화할 수 있는 응용 프로그램도 있습니다. 파일 이름 끝에 느낌표(!)를 붙이고 활성화할 파일 부분을 식별하는 문자열을 씁니다. 이 문자열을 만드는 자세한 방법은 개체를 만든 응용 프로그램 문서를 참고하십시오.

예를 들어, 그리기 응용 프로그램이라면 파일에 저장된 그림에 여러 층이 있을 것입니다. 다음 코드로 SCHEMA.CAD라는 그림의 한 층을 활성화할 수 있습니다.

    Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

개체의 class를 지정하지 않으면 사용자가 제공한 파일 이름에 따라 자동화에 의하여 시작할 응용 프로그램과 활성화할 개체를 결정합니다. 하지만 여러 클래스의 개체를 지원하는 파일도 있습니다. 예를 들어, 그리기는 Application 개체, Drawing 개체, Toolbar 개체의 세 가지를 지원하는 데 이들은 모두 같은 파일의 부분입니다. 활성화할 개체를 지정하러면 선택적 class 인수를 사용하십시오.

예:   Dim MyObject As Object

      Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")

위 예에서 , FIGMENT는 그리기 응용 프로그램 이름이며 DRAWING은 지원되는 개체 형식의 하나입니다.

개체가 활성화되면 코드에서 지정한 개체 변수로 해당 개체를 참조할 수 있습니다. 위 예에서는 개체 변수 MyObject로 새 개체의 속성메서드를 액세스할 수 있습니다.

예:   MyObject.Line 9, 90

MyObject.InsertText 9, 100, "안녕하십니까."

MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"

메모   개체의 현재 인스턴스가 있거나 이미 로드된 파일로 개체를 만들려면 GetObject 함수를 사용합니다. 현재 인스턴스가 없고 로드된 파일로 개체를 시작하지 않으려면 CreateObject 함수를 사용하십시오.

개체가 단일 인스턴스 개체로 자기 등록하지 않으면 CreateObject를 여러 번 실행해도 개체당 하나의 인스턴스만이 만들어집니다. 단일 인스턴스 개체일 때 GetObject는 길이가 0인 문자열("") 구문으로 호출할 때 항상 같은 인스턴스를 만들고 pathname 인수가 없으면 오류가 일어납니다. GetObject는 Visual Basic으로 만든 클래스 참조를 얻는 데는 사용할 수 없습니다.

ActiveX 개체

자동 인터페이스를 통하여 다른 응용 프로그램이나 응용 프로그램 도구에 나타나는 개체를 의미합니다.

클래스

개체의 형식적 정의를 의미합니다. 클래스는 수행 중 개체의 인스턴스가 만들어지는 서식 파일처럼 수행됩니다. 클래스는 개체의 속성과 개체의 동작을 제어하는 방법을 정의합니다.

속성

개체의 명명된 속성을 의미합니다. 속성은 크기, 색상, 화면 위치와 같은 개체의 특성이나 가능 또는 불가능과 같은 개체의 상태를 정의합니다.

메서드

개체에 실행되는 프로시저를 의미합니다.

GetObject 함수 예제

다음은 GetObject 함수로 특정 Microsoft Excel워크시트(MyXL)를 참조하는 예입니다. 워크시트의  Application 속성으로  Microsoft Excel을 표시하고 닫는 등의 작업을 합니다. 두 API 호출을 사용하면 DetectExcel Sub 프로시저는 Microsoft Excel을 찾고 실행 중이면 Running Object Table에 입력합니다. GetObject의 첫 번째 호출은 Microsoft Excel이 실행 중이 아니면 오류를 일으킵니다. 예에서는 오류 때문에  ExcelWasNotRunning 플래그가 True로 설정되었습니다. 두 번째 GetObject 호출은 파일을 열도록 지정합니다. Microsoft Excel이 실행 중이 아니면 두 번째 호출로 프로그램을 시작하고 지정된 파일 mytest.xls 가 표시한 워크시트 참조를 반환합니다. 파일은 지정 위치에 있어야 합니다. 그렇지 않으면 Visual Basic Automation 오류가 일어납니다. 다음은 Microsoft Excel과 지정된 워크시트 창을 모두 표시하는 예입니다. 마지막으로 실행 중인 이전 버전의 Microsoft Excel이 없으면 Application 개체의 Quit 메서드로 Microsoft Excel을 종료합니다. 응용 프로그램이 이미 실행 중이면 이런 시도는 하지 않습니다. 참조 역시 Nothing에 설정되어 해제됩니다.

' 필요한 API 루틴을 선언합니다.

Declare Function FindWindow Lib "user32" Alias _

"FindWindowA" (ByVal lpClassName as String, _

                                        ByVal lpWindowName As Long) As Long

Declare Function SendMessage Lib "user32" Alias _

"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long _

                                        ByVal wParam as Long _

                                        ByVal lParam As Long) As Long

Sub GetExcel()

        Dim MyXL As Object     ' Microsoft Excel에 대한 참조를 취할 변수.

        Dim ExcelWasNotRunning As Boolean       ' 마지막 해제 플래그.

         ' 실행 중인 Microsoft Excel 복사본이 있는지 검사하십시오.

        On Error Resume Next    ' 오류 추적을 보류하십시오.

' 첫 번재 인수 없이 호출된 Getobject 함수는 응용 프로그램 인스턴스에 대한 참조를 반환합니다.

‘ 응용 프로그램을 실행 중이 아니면 오류가 일어납니다.

        Set MyXL = Getobject(, "Excel.Application")

        If Err.Number <> 0 Then ExcelWasNotRunning = True

        Err.Clear    ' 오류가 일어나면 Err 개체를 지우십시오.

         ' Microsoft Excel을 확인합니다. Microsoft Excel이 실행 중이면 Running Object table에 입력하십시오.

        DetectExcel

         Set MyXL = Getobject("c:\vb4\MYTEST.XLS")   ' 개체 변수를 볼 파일에 대한 참조로 설정합니다.

         ' Application 속성으로 Microsoft Excel을 표시합니다. 그런 다음, MyXL 개체 참조의 Windows 컬렉션을 사용하는 파           ‘ 일이 포함된 실제 창을 표시합니다.

        MyXL.Application.Visible = True

        MyXL.Parent.Windows(1).Visible = True

        ' 여기서 파일을

        ' 조작합니다.

        ' ...

         ' 시작했을 때 Microsoft Excel 복사본 실행 중이 아니였으면 Application 속성의 Quit 메서드로 종료합니다.

         ' Microsoft Excel을 종료할 때 제목 표시줄이 깜박이고 읽어들인 파일을 저장할 것인지 묻는 메시지가 표시되는지 확           ‘ 인합니다.

        If ExcelWasNotRunning = True Then

                MyXL.Application.Quit

        End IF

        Set MyXL = Nothing     ' 응용 프로그램과 스프레드시트에 대한

End Sub     ' 참조를 해제합니다.

Sub DetectExcel()

         ' 프로시저는 실행 중인 Excel을 탐지하고 등록합니다.

        Const WM_USER = 1024

        Dim hWnd As Long

' Excel이 실행 중이면 API 호출은 핸들을 반환합니다.

hWnd = FindWindow("XLMAIN", 0)

        If hWnd = 0 Then ' 0 means Excel not running.

                Exit Sub

        Else                            

                ' Excel이 샐행 중이므로 SendMessage API 함수로 Running Object Table에 입력합니다.

                SendMessage hWnd, WM_USER + 18, 0, 0

        End If

End Sub


◆ GetSetting 함수

Windows 레지스트리에서 키 설정값을 반환합니다.

구문  GetSetting(appname, section, key[, default])

GetSetting 함수는 세 개의 명명된 인수를 가집니다.

인수    설명

appname 필수. 키 설정을 알고자 하는 응응 프로그램이나 프로젝트의 이름을 값으로 하는 문자열 식입니다.

section  필수. 키 설정을 알고자 하는 절의 이름을 값으로 하는 문자열 식입니다.

key     필수. 반환할 키 설정의 이름을 값으로 하는 문자열 식입니다.

Default  선택적인 인수 입니다. 키 설정에 아무 값도 없을 때 반환할 값을 가지고 있는 식입니다. 생략할 경우 default는 길이           가 0인 문자열 값을 가집니다.

참고  GetSetting 인수 중의 하나라도 값이 지정되지 않으면, GetSetting은 default 값을 반환합니다.

GetSetting 함수 예제

다음 예제에서는 먼저 appname으로 지정된 응용 프로그램에 대한 Windows 레지스트리(또는 16 비트 Windows 플랫폼에서는 .INI 파일)에 항목을 만들기 위해 SaveSetting 문을 사용하고, 그 다음에 설정한 내용 중 한 가지를 표시하기 위해 GetSetting 함수를 사용합니다. default 인수가 지정되어 있기 때문에 몇몇 값은 반환이 보장됩니다. section 이름은 GetSetting으로 얻을 수 없음에 유의합니다. 마지막으로  DeleteSetting 문으로 응용 프로그램의 항목을 제거합니다.

Dim MySettings As Variant    ' GetSetting에 의해 반환된 2차원 배열을 가지는 변형입니다.

SaveSetting "MyApp","Startup", "Top", 75  ' 레지스터리에 몇 개의 설정을 배치합니다.

SaveSetting "MyApp","Startup", "Left", 50

Debug.Print GetSetting(appname := "MyApp", section := "Startup", _

                       key := "Left", default := "25")

DeleteSetting "MyApp", "Startup"


◆ IMEStatus 함수

Microsoft Windows의 현재 IME(Input Method Editor) 모드를 나타내는 Integer를 부여하며, 이는 극동 아시아 버전에만 해당됩니다.

구문  IMEStatus

반환값

시스템 로케일이 한국어일 경우 사용할 수 있는 상수는 다음과 같습니다.

상수  

설명

vbIMEModeNoControl

vbIMEModeAlphaFull

vbIMEModeAlpha    

vbIMEModeHangulFull

vbIMEModeHangul

0

7

8

9

10

현재 상태 유지

영문 전자

영문

한글 전자

한글

시스템 로케일이 일본어일 경우 사용할 수 있는 상수는 다음과 같습니다.

상수

설명

vbIMEModeNoControl     

vbIMEModeOn           

vbIMEModeOff   

vbIMEModeDisable       

vbIMEModeHiragana

vbIMEModeKatakana

vbIMEModeKatakanaHalf

vbIMEModeAlphaFull

vbIMEModeAlpha

0

1

2

3

4

5

6

7

8

현재 상태 유지

일본어 입력 상태 설정

일본어 입력 상태 해제

일본어 입력 시스템을 사용할 수 없음

히라가나 전자

가다가나 전자

가다가나

영문 전자

영문

시스템 로케일이 중국어일 경우 사용할 수 있는 상수는 다음과 같습니다.

상수

설명

vbIMEModeNoControl

vbIMEModeOn     

vbIMEModeOff

0

1

2

현재 상태 유지

중국어 입력 상태 설정

중국어 입력 상태 해제

<참고>

vbIMENoOp, vbIMEOn, vbIMEOff, vbIMEDisable, vbIMEHiragana, vbIMEKatakanaDbl, vbIMEKatakanaSng, vbIMEAlphaDbl, vbIMEAlphaSng은 Visual Basic 4.0과의 호환성을 유지하기 위하여 제공되는 IMEStatus에 대한 인수 상수 입니다.


◆ IsArray 함수

변수가 배열인지 나타내는 Boolean 값을 반환합니다.

구문  IsArray(varname)

변수를 지정하는 식별자를 나타내는 varname 인수가 필요합니다.

참고

IsArray는 변수가 배열이면 True를, 배열이 아니면 False를 반환합니다. IsArray는 배열이 들어 있는 Variant를 사용할 때 특히 유용합니다.

IsArray 함수 예제

다음은 변수가 배열인 가를 검사하기 위해 IsArray 함수를 사용하는  예제입니다.

Dim MyArray(1 To 5) As Integer, YourArray, MyCheck    ' 배열 변수를 선언합니다.

YourArray = Array(1, 2, 3)     ' 배열 함수를 사용합니다.

MyCheck = IsArray(MyArray)   ' True를 반환합니다.

MyCheck = IsArray(YourArray)  ' True를 반환합니다.


◆ IsEmpty 함수

변수가 초기화 되었는지를 나타내는 Boolean값을 반환합니다.

구문  IsEmpty(expression)

인수 또는 문자열 식이 들어 있는 Variant를 나타내는 expression 인수가 필요합니다. 그러나 개개의 변수가 초기화되었는지 결정하기 위해 IsEmpty를 사용하기 때문에 expression 인수는 거의 단일 변수 이름이 됩니다.

참고

IsEmpty는 변수가 초기화되지 않거나, Empty로 설정되면 True를, 그렇지 않으면 False를 반환합니다. expression에 하나 이상의 변수가 들어 있으면 항상 False가 반환됩니다. IsEmpty는 변수에 대한 의미있는 정보를 반환합니다.

IsEmpty 함수 예제

다음은 변수가 초기화되었는 지를 결정하기 위해 IsEmpty 함수를 사용하는 예제입니다.

Dim MyVar, MyCheck

MyCheck = IsEmpty(MyVar)    ' True를 반환합니다.

MyVar = Null                   ' Null을 지정합니다.

MyCheck = IsEmpty(MyVar)    ' False를 반환합니다.

MyVar = Empty               ' Empty를 지정합니다.

MyCheck = IsEmpty(MyVar)    ' True를 반환합니다.


◆ IsError 함수

식이 오류 값인지를 나타내는 Boolean 값을 반환합니다.

구문  IsError(expression)

expression 인수가 필요하고, 이 인수는 VarType vbError의 Variant이어야 합니다.

참고

CVErr 함수를 사용하여 실수를 오류 값으로 변환하여 오류 값을 생성합니다. 숫자 식이 오류를 나타내는지 결정하기 위해 IsError 함수를 사용합니다. IsError는 expression 인수가 오류를 나타내면 True를, 그렇지 않으면 False를 반환합니다. IsError는 VarType vbError 의 변수에 대한 의미 있는 정보를 반환합니다.

IsError 함수 예제

다음은 숫자 식이 오류값을 갖는 지를 검사하기 위해 IsError 함수를 사용하는 예제입니다. CVErr 함수는 사용자 정의 함수로부터 Error Variant를 반환하는 데 사용합니다. UserFunction은 , 예를 들면, UserFunction = CVErr(32767)문이라고 지정된 반환값(여기서 32767은 사용자 정의 수)과 같은 오류값을 반환하는 사용자 정의 함수 프로시저라고 가정합니다.

Dim ReturnVal, MyCheck

ReturnVal = UserFunction()

MyCheck = IsError(ReturnVal)   ' True를 반환합니다.


◆ IsMissing 함수

선택적인 Variant 인수가 프로시저에 전달되었는지 나타내는 Boolean 값을 반환합니다.

구문  IsMissing(argname)

선택적인 Variant 프로시저 인수의 이름이 들어 있는 argname 인수가 필요합니다.

참고 IsMissing 함수를 사용하여 호출 프로시저가 선택적인 Variant 인수를 제공했는지 알 수 있습니다. IsMissing은 특정 인수에 어떤 값도 전달되지 않으면 True를, 그렇지 않으면 False를 반환합니다. IsMissing이 인수에 대해 True를 반환하면 다른 코드에서 빠진 인수를 사용하여 사용자 정의 오류가 발생할 수도 있습니다. IsMissing을 ParamArray 인수에 사용하면 항상 False가 반환됩니다. ParamArray가 비어 있는지 알아 보려면 배열의 위 첨자가 아래 첨자보다 작은지 검사해 보십시오.

IsMissing 함수 예제

다음은 선택적인 인수가 사용자 정의 프로시저에 주어졌는가를 검사하기 위해 IsMissing 함수를 사용하는 예제입니다. Optional 인수가 Variant 이외에 기본 값과 형식을 가질 수 있음에 유의합니다.

Dim ReturnValue

' 다음 문은 사용자 정의 함수 프로시저를 호출합니다.

ReturnValue = ReturnTwice()   ' Null을 반환합니다.

ReturnValue = ReturnTwice(2)  ' 4를 반환합니다.

Function ReturnTwice(Optional A)    ' 함수 프로시저 정의.

    If IsMissing(A) Then

            ReturnTwice = Null    ' 인수가 누락되면, Null을 반환합니다.

    Else

            ReturnTwice = A * 2     ' 인수가 있으면, 2배 값을 반환합니다.

    End If

End Function


◆ IsNull 함수

식이 유효한 데이터를 전혀 포함하지 않는지를 (Null) 나타내는 Boolean 값을 반환합니다.

구문  IsNull(expression)

숫자 식 또는 문자열 식이 들어 있는 Variant를 나타내는 expression 인수가 필요합니다.

참조

IsNull은 expression이 Null이면 True를, Null이 아니면 False를 반환합니다. expression에 하나 이상의 변수가 들어 있는 경우 구성 변수에 Null이 있으면 전체 식에 True를 반환합니다.

Null 값은 Variant에 유효한 데이터가 전혀 없음을 나타냅니다. Null은 변수가 초기화되지 않음을 나타내는 Empty와는 같지 않습니다. 또한 이따금 null 문자열로 참조되는 길이가 0인 문자열("")과도 같지 않습니다.

중요  IsNull 함수를 사용하여 식에 Null 값이 들어 있는지 결정합니다. 어떤 상황에서 True로 평가하려는 식 (If Var = Null 과 If Var <> Null 와 같이)은 항상 False가 됩니다. Null이 들어 있는 식은 그 자체가 Null이 되므로 False가 됩니다.

IsNull 함수 예제

다음은 변수가 Null 값을 포함하는 지를 결정하기 위해 IsNull 함수를 사용하는 예제입니다.

Dim MyVar, MyCheck

MyCheck = IsNull(MyVar)      ' False를 반환합니다.

MyVar = ""

MyCheck = IsNull(MyVar)      ' False를 반환합니다.

MyVar = Null

MyCheck = IsNull(MyVar)      ' True를 반환합니다.


◆ IsObject 함수

식별자가 개체 변수인지를 나타내는 Boolean 값을 반환합니다.

구문  IsObject(identifier)

변수 이름을 나타내는 identifier 인수가 필요합니다.

참고

IsObject는 Variant가 VarType vbObject로 되어 있는지의 여부를 결정하는 경우에만 유용합니다. 이것은 Variant가 실제로 개체를 참조하거나 Nothing을 포함하는 경우에 발생할 수 있습니다.

IsObject는 identifier가 Object 형식이나 유효한 클래스 형식으로 선언된 변수이거나, identifier가 VarType vbObject로 된 Variant, 또는 사용자 정의 개체인 경우에는 True를, 그렇지 않으면 False를 반환합니다. IsObject 는 변수가 Nothing으로 설정되어 있다 하더라도 True를 반환합니다.

오류 처리를 사용하여 개체 참조가 유효한지 확인할 수 있습니다.

IsObject 함수 예제

다음은 식별자가 개체 변수를 나타내는 지를 결정하기 위해 IsObject 함수를 사용하는 예제입니다. MyObject와 YourObject는 같은 형식의 개체 변수입니다. 이 변수들은 데모용으로만 사용되는 일반 이름입니다.

Dim MyInt As Integer, YourObject, MyCheck     ' 변수를 선언합니다.

Dim MyObject As Object

Set YourObject = MyObject           ' 개체 참조를 지정합니다.

MyCheck = IsObject(YourObject) ' True를 반환합니다.

MyCheck = IsObject(MyInt)           ' False를 반환합니다.


◆ LBound 함수

지정된 배열 차원에 사용할 수 있는 가장 작은 첨자를 포함하는 Long을 반환합니다.

구문  LBound(arrayname[, dimension])

LBound 함수 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소

설명

arrayname

dimension

필수 사항. 배열 변수 이름; 표준 변수 이름 규칙 준수.

선택 사항; Variant (Long). 하위 바운드 차원을 표시하는 정수를 반환합니다. 첫 번째 차원에는 1, 두 번째 차원에는 2와 같이 씁니다. dimension이 없으면 1로 가정합니다.

참고

LBound 함수를 UBound 함수와 함께 써서 배열 크기를 결정합니다.

UBound 함수로 배열 차원 상한을 찾습니다.

LBound는 이 차원의 배열에 대하여 다음 값을 반환합니다.

Dim A(1 To 100, 0 To 3, -3 To 4)

 

문              반환 값

LBound(A, 1)     1

LBound(A, 2)     0

LBound(A, 3)    -3

어느 차원이든 기본 하위 바운드는 Option Base 문 설정에 따라 0이나 1입니다. Array 함수로 만든 배열 기본은 0이며 Option Base의 영향을 받지 않습니다.

Dim, Private, Public, ReDim, 또는 Static 문에서 To 절로 설정할 차원의 배열에는 하위 바운드로 어떤 정수 값도 들어갈 수 있습니다.

LBound 함수 예제

다음은 LBound 함수로 배열의 표시된 차원 중 하한 값을 결정하는 예입니다. Option Base로 기본 배열 첨자 값 0을 바꿀 수 있습니다.

Dim Lower

Dim MyArray(1 To 10, 5 To 15, 10 To 20)        ' 배열 변수를 선언합니다.

Dim AnyArray(10)

Lower = Lbound(MyArray, 1)    ' 1을 반환합니다.

Lower = Lbound(MyArray, 3)    ' 10을 반환합니다.

Lower = Lbound(AnyArray)      ' Option Base 설정에 따라, 0 또는 1을 반환합니다.


◆ LoadPicture 함수

폼의 Picture 속성, PictureBox 컨트롤, Image 컨트롤에 그래픽을 불러옵니다.

구문  LoadPicture([stringexpression])

stringexpression 인수는 불러올 그래픽 파일의 이름입니다.

참고

Visual Basic이 인식하는 그래픽 형식은 비트맵 (.bmp) 파일, 아이콘 (.ico) 파일, run-length encoded (.rle) 파일, 메타파일 (.wmf) 파일, 향상된 메타파일 (.emf), GIF 파일, JPEG (.jpg) 파일 등입니다.

인수를 사용하지 않고 LoadPicture를 지정하면 그래픽은 폼, 그림 상자, 이미지 컨트롤에서 지워집니다.

PictureBox 컨트롤, Image 컨트롤에 표시하거나 폼의 백그라운드로 사용하기 위해 그래픽을 불러오려면 LoadPicture의 반환 값은 그림이 표시된 개체의 Picture 속성에 지정되어야 합니다.

예를 들어:     Set Picture = LoadPicture("PARTY.BMP")

               Set Picture1.Picture = LoadPicture("PARTY.BMP")

폼에 아이콘을 지정하려면 LoadPicture 함수의 반환 값을 Form 개체의  Icon 속성으로 설정해야 합니다:

   Set Form1.Icon = LoadPicture("MYICON.ICO")

이외에도 아이콘은 Timer 컨트롤과 Menu 컨트롤을 제외한 모든 컨트롤의 DragIcon 속성에 지정될 수 있습니다. 예를 들어:

   Set Command1.DragIcon = LoadPicture("MYICON.ICO")

다음과 같이 LoadPicture를 사용하여 시스템 클립보드에 그래픽 파일을 불러옵니다:

   Clipboard.SetData LoadPicture("PARTY.BMP")

LoadPicture 함수 예제

다음은 LoadPicture 함수를 사용하여 폼의 Picture 속성으로 그림을 불러오고, Form 개체에서 그림을 지우는 예제입니다. 이 예제를 실행하려면 Form 개체의 선언 구역으로 코드를 붙여넣고 실행시킨 다음 Form 개체를 누르십시오.

Private Sub Form_Click ()

     Dim Msg as String       ' 변수를 선언합니다.

     On Error Resume Next    ' 오류 처리를 설정합니다.

     Height = 3990    ' 높이와 너비를 설정합니다.

     Width = 4890    

     Set Picture = LoadPicture("PAPER.BMP")    ' 비트맵을 불러들입니다.

             If Err Then

             Msg = "Couldn't find the .BMP file."

             MsgBox Msg    ' 오류 메시지를 표시합니다.

             Exit Sub   ' 오류가 발생하면 종료합니다.

     End If

     Msg = "Choose OK to clear the bitmap from the form."

     MsgBox Msg

Set Picture = LoadPicture()      ' 폼을 지웁니다.

End Sub


◆ QBColor 함수

지정된 색 번호에 대응하는 RGB 색 코드를 나타내는 Long을 반환합니다.

구문  QBColor(color)

요구되는 color 인수는 범위 0 5 사이의 정수입니다.

설정  color 인수는 다음과 같이 설정되어 있습니다.

번호

번호

 

참 고

0

1

2

3

4

5

6

7

검정

파랑

초록

청록

빨강

진홍

노랑

흰색

8

9

10

11

12

13

14

15

회색

연 파랑

연 초록

연 청록

연 빨강

연 진홍

연 노랑

옅은 흰색

color 인수는 이전 버전의 Basic(MS-DOS용 Microsoft Visual Basic, Basic 컴파일러)에서 사용하던 색 값을 나타냅니다. 최하위 바이트로 시작하여 반환되는 값은 응용 프로그램용 Visual Basic이 사용하던 RGB 시스템에서 적당한 색을 설정하기 위해 사용하는 빨강, 초록, 파랑 값을 지정합니다.

QBColor 함수 예제  이 예제는 QBColor 함수를 사용하여 ColorCode에 의해 지시된 색으로 MyForm으로서 전달되는 폼의 BackColor 속성을 변경합니다. QBColor는 0 에서 15 사이의 정수값을 허용합니다.

Sub ChangeBackColor (ColorCode As Integer, MyForm As Form)

    MyForm.BackColor = QBColor(ColorCode)

End Sub


◆ RGB 함수

RGB 색 값을 나타내는 Long 형식의 정수를 반환합니다.

구문  RGB(red, green, blue)

RGB 함수문은 다음과 같이 명명된 인수로 구성되어 있습니다.

구성 요소

설명

red     

Green   

Blue    

필수. Variant (Integer). 0-255 사이의 수로, 빨간색 구성 요소를 나타냅니다.

필수. Variant (Integer). 0-255 사이의 수로, 초록색 구성 요소를 나타냅니다.

필수. Variant (Integer). 0-255 사이의 수로, 파란색 구성 요소를 나타냅니다.

참고

색 사양을 받아들이는 응용 프로그램 메서드와 속성 중의 사양은 RGB 색 값을 나타내는 수가 되어야 합니다. RGB 색 값은 빨강, 초록, 파랑의 상대 농도를 지정하여 특정 색을 표시합니다.

RGB에 대해 255를 초과하는 인수의 값은 255로 간주합니다.

다음 표에서는 표준 색과 그 색에 들어 있는 빨강, 초록, 파랑 값을 나열합니다.

 

빨강 값

초록 값

파랑 값

 

검정

파랑

초록

청록

빨강

자홍

노랑

흰색

0

0

0

0

255

255

255

255

0

0

255

255

0

0

255

255

0

255

0

255

0

255

0

255

RGB 함수 예제

이 예제는 어떻게 RGB 함수가 사용되어 RGB 색 값을 나타내는 모든 숫자를 반환하는지 보여줍니다. 색 지정을 허용하는 것은 응용 프로그램 메서드와 속성에 사용됩니다. 개체 MyObject와 그 속성은 설명 목적으로만 사용됩 니다. 만일 MyObject가 존재하지 않거나 색 속성을 갖고 있지 않다면 오류가 발생합니다.

Dim RED, I, RGBValue, MyObject

Red = RGB(255, 0, 0)  ' 빨강에 대한 값을 반환합니다.

I = 75       ' 오프셋을 초기화합니다.

RGBValue = RGB(I, 64 + I, 128 + I)      ' RGB(75, 139, 203)와 같습니다.

MyObject.Color = RGB(255, 0, 0)    ' 빨강에 MyObject의 색 속성을 설정합니다.


◆ Shell 함수

프로그램을 수행하고 성공적으로 종료되었을 경우는 프로그램의 작업 ID를 나타내는 Variant(Double) 값을 반환하고, 비정상적으로 종료되었을 경우는 0값을 반환합니다.

구문  Shell(pathname[,windowstyle])

Shell 함수는 다음과 같은 명명된 인수를 사용합니다.

인수

설명 

pathname

 

Windowstyle

필수; Variant(String). 실행할 프로그램의 이름이나 필요한 인수 또는 명령줄 스위치. 디렉토리나 폴더 또는 드라이브 포함 가능.

선택. 실행할 프로그램이 있는 창의 유형에 대응하는 Variant(Integer)값. windowstyle을 생략할 경우, 프로그램은 포커스를 갖고 최소화된 상태로 시작.

windowstyle의 명명된 인수의 값은 다음과 같습니다.

 

 

상수

설명 

참고

Shell 함수가 지정된 파일을 성공적으로 실행하고 나면, 시작된 프로그램의 작업 ID를 반환합니다. 작업 ID는 실행 중인 프로그램을 지정하는 유일한 숫자를 의미합니다. Shell 함수가 지정된 프로그램을 시작할 수 없을 경우 오류가 발생합니다.

메모 Shell 함수는 다른 프로그램을 비동기적으로 실행시킵니다. 즉 Shell 함수로 시작한 프로그램은 Shell 함수 다음의 문을 수행되기 전까지도 실행을 종료하지 않습니다.

vbHide

vbNormalFocus

        

vbMinimizedFocus 

vbMaximizedFocus 

vbNormalNoFocus 

 

vbMinimizedNoFocus

0

1

 

2

3

4

 

6

창이 숨겨진 상태이며 포커스가 숨겨진 창으로 전달

창이 포커스 상태이며 창 원래 상태의 크기와 위치로 복귀.

창이 포커스 상태의 아이콘으로 표시.

창이 포커스 상태로 최대화.

창이 최근의 창 크기와 위치로 복귀. 현재 활성화된 창이 계속 활성창으로 남아있게 됨.

창이 아이콘으로 표시. 현재 활성화된 창이 계속 활성창으로 남아있게 됨

Shell 함수 예제

이 예제는 Shell 함수를 사용하여 사용자에 의해 지정된 응용 프로그램을 실행합니다. Macintosh에서는, MacID 함수를 사용하면 응용 프로그램의 파일 이름이 변경되어도 그 응용 프로그램을 시작할 수 있습니다. System 7.0 이전의 Macintosh 버전에서는 Shell 함수를 사용할 수 없습니다.

' Microsoft Windows에서는 다음과 같습니다.

' 1을 두 번째 인수로 지정하면 응용 프로그램을 보통 크기로 열고

' 포커스를 줍니다.

Dim RetVal

RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)     ' 계산기를 실행합니다.

' Macintosh에서는 다음과 같습니다.

' 두 개의 문이 모두 Microsoft Excel을 시작합니다.

RetVal = Shell("Microsoft Excel") ' 파일 이름을 지정합니다.

RetVal = Shell(MacID("XCEL"))  ' 서명을 지정합니다.


◆◆ SQL 계산 함수

SQL 계산 함수를 사용하여 일련의 값에 대한 다양한 통계를 구할 수 있습니다. 질의에서 이 함수를 사용 할 수 있고 QueryDef 개체의 SQL 속성에서 계산식을 사용할 수 있으며 SQL 질의를 원본으로 하는 Recordset을 작성할 때도 사용할 수 있습니다.

계산 함수

합계를 구하는 데 사용하는 Sum, Count, Avg, Var 등의 함수입니다. 식을 쓰거나 프로그래밍을 할 때 앞의 네 함수를 포함한 SQL 계산 함수나 도메인 계산 함수를 사용하여 다양한 통계값을 구할 수 있습니다.

QueryDef  도움말 파일 참조 (vb5.hlp 파일내의 SQL 계산함수 참조)

SQL 도움말 파일 참조

Recordset 도움말 파일 참조

Avg 함수

Count 함수

Min, Max 함수

StDev, StDevP 함수

Sum 함수

Var, VarP 함수

■■■■■■■■■■■

1. Avg 함수

의에서 지정 필드에 있는 값의 산술 평균을 구합니다.

구문  Avg(expr)

expr는 평균을 구할 숫자 데이터가 있는 필드를 알려주는 문자열 식 또는 그 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr의 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 수 없음) 등을 포함할 수 있습니다.

참고 

Avg 함수로 계산한 평균은 수학적인 평균입니다.(즉, 합계를 값의 개수로 나눈 값입니다). 예를 들어, Avg 함수를 사용하여 평균 운송비를 계산할 수 있습니다.  Avg 함수는 계산 시 Null 필드를 제외합니다.

Avg 함수는 질의 식 및 QueryDef 개체의 SQL 속성에 또는 SQL 질의를 원본으로 하는 Recordset 개체를 작성할 때 사용할 수 있습니다.

Avg 함수 예제

다음 예제는 Orders 테이블을 사용하여 수송료가 $100가 넘는 주문에 대해 평균 수송료를 계산합니다.

다음 예제는 SELECT 문 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub AvgX()

        Dim dbs As Database, rst As Recordset

        Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

        ' 수송료가  $100가 넘는 주문에 대한 평균 수송료를 계산합니다. 

        Set rst = dbs.OpenRecordset("SELECT Avg(Freight)" & " AS [Average Freight]" _

                & " FROM Orders WHERE Freight > 100;")

        rst.MoveLast    ' Recordset을 만듭니다.

        ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

        EnumFields rst, 25    ' Recordset 개체와 원하는 필드 너비를 전달합니다.

        dbs.Close

End Sub

2. Count 함수

질의가 반환하는 레코드 수를 계산합니다.

구문  Count(expr)

expr는 개수를 셀 데이터가 있는 필드를 나타내는 문자열 식 또는 그 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr의 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 수 없음) 등을 포함할 수 있습니다. 텍스트를 포함한 모든 형식의 데이터를 셀 수 있습니다.

참고  Count 함수를 사용하여 원본으로 사용하는 질의의 레코드 수를 셀 수 있습니다. 예를 들어, Count 함수를 사용하여 특정 국가로 운송할 주문서의 수를 셀 수 있습니다.

expr은 필드에서 계산을 수행하지만 Count 함수는 단순히 레코드 수만 셉니다. 레코드에 저장된 값과는 무관합니다.

Count 함수는 expr에 별표(*) 대표 문자를 사용한 경우에만 Null 필드가 있는 레코드 수를 계산합니다. 별표를 사용하면 Count 함수는 Null 필드가 있는 레코드를 포함한 전체 레코드 수를 계산합니다. Count(*) 함수는 Count([Column Name]) 함수에 비해 수행 속도가 훨씬 빠릅니다. 별표를 작은 따옴표(' ') 안에 사용하지 마십시오.

다음 예제는 Orders 테이블의 레코드 수를 계산합니다.

   SELECT Count(*)

   AS TotalOrders FROM Orders;

expr가 여러 필드를 확인하면, Count 함수는 적어도 하나의 필드가 Null이 아닐 경우에만 레코드를 셉니다. 지정한 필드가 모두 Null일 경우 레코드를 세지 않습니다. 필드 이름은 & 기호로 구분합니다. 다음 예제는 ShippedDate 또는 Freight가 Null이 아닌 레코드만을 세도록 제한 하는 방법을 보여 줍니다.

SELECT

Count('ShippedDate & Freight')

AS [Not Null] FROM Orders;

질의 식에 Count를 사용할 수 있습니다.  QueryDef 개체의 SQL 속성에 또는 SQL 질의를 원본으로 하는 Recordset 개체를 작성할 때 이 식을 사용할 수 있습니다.

Count 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적된 주문수를 계산합니다.

다음 예제는 SELECT 문 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub CountX()

        Dim dbs As Database, rst As Recordset

        Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

        ' 영국으로 선적된 주문 수를 계산합니다.

        Set rst = dbs.OpenRecordset("SELECT" & " Count (ShipCountry)" _

                & " AS [UK Orders] FROM Orders" & " WHERE ShipCountry = 'UK';")

        rst.MoveLast     ' Recordset을 만듭니다.

        ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

' Recordset 개체와 원하는 필드 너비를 전달합니다.

        EnumFields rst, 25

        dbs.Close

End Sub

3. Min, Max 함수

질의의 지정된 필드에 있는 값 중 최소값이나 최대값을 반환합니다.

구문  Min(expr)

      Max(expr)

expr는 사용할 데이터가 있는 필드를 나타내는 문자열 식 또는 그 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr의 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 수 없음) 등을 포함할 수 있습니다.

참고  Min 및 Max를 사용하여 계산 또는 그룹화 된 필드의 최소값과 최대값을 구할 수 있습니다. 예를 들어, 이 함수를 사용하여 최저 운임과 최대 운임을 계산할 수 있습니다. 지정한 그룹이 없으면 전체 테이블을 사용합니다.

QueryDef 개체의 SQL 속성과 질의 식에 또는 SQL 질의를 원본으로 하는 Recordset 개체를 작성할 때 Min과 Max 함수를 사용할 수 있습니다.

Min, Max 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적되는 주문에 대해 최저 수송료와 최고 수송료를 반환합니다.

다음 예제는 SELECT 문 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub MinMaxX()

        Dim dbs As Database, rst As Recordset

        ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

        Set dbs = OpenDatabase("Northwind.mdb")

        ' 영국으로 선적되는 주문에 대해 최저 수송료와

        ' 최고 수송료를 반환합니다.

        Set rst = dbs.OpenRecordset("SELECT " & "Min(Freight) AS [Low Freight], " _

                & "Max(Freight)AS [High Freight] " & "FROM Orders WHERE ShipCountry = 'UK';")

        ' Recordset을 만듭니다.

rst.MoveLast

        ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

        ' Recordset 개체와 원하는 필드 너비를 전달합니다.

        EnumFields rst, 12

        dbs.Close

End Sub

4. StDev, StDevP 함수

질의의 특정 필드에 포함된 값으로 모집단이나 모집단 표본에 대한 표준 편차의 결과를 반환합니다.

구문  StDev(expr)

      StDevP(expr)

expr는 사용할 데이터가 있는 필드를 나타내는 문자열 식 또는 그 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr의 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 수 없음) 등을 포함할 수 있습니다.

참고

StDevP 함수는 모집단을 구하고 StDev 함수는 모집단 표본을 구합니다.

원본으로 사용하는 질의에 두 개 미만의 레코드가 있으면(또는 StDevP 함수의 경우, 레코드가 없을 때) Null 값을 반환합니다. 이는 표준 편차를 계산할 수 없음을 뜻합니다.

StDev와 StDevP 함수를 질의 식에 사용할 수 있습니다. QueryDef 개체의 SQL 속성에 또는 SQL 질의를 원본으로 하는 Recordset 개체를 작성할 때 이 식을 사용할 수 있습니다.

StDev, StDevP 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적되는 주문에 대한 수송료의 표준 편차를 계산합니다.

다음 예제는 SELECT 문 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub StDevX()

        Dim dbs As Database, rst As Recordset

        Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

        ' 영구으로 선적되는 주문에 대한 수송료의 표준 편차를 계산합니다.

        Set rst = dbs.OpenRecordset("SELECT " & "StDev(Freight) " _

                & "AS [Freight Deviation] FROM Orders " & "WHERE ShipCountry = 'UK';")

        ' Populate the Recordset.

        rst.MoveLast

        ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

' Recordset 개체와 원하는 필드 너비를 전달합니다.

        EnumFields rst, 15

        Debug.Print

        Set rst = dbs.OpenRecordset("SELECT " & "StDevP(Freight) " _

                & "AS [Freight DevP] FROM Orders " & "WHERE ShipCountry = 'UK';")

        ' Recordset을 만듭니다.

        rst.MoveLast

        ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

        ' Recordset 개체와 원하는 필드 너비를 전달합니다.

        EnumFields rst, 15

        dbs.Close

End Sub

5. Sum 함수

질의에서 지정 필드에 있는 일련의 값의 합계를 반환합니다.

구문  Sum(expr)

expr는 사용할 데이터가 있는 필드를 나타내는 문자열 식 또는 그 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr의 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 수 없음) 등을 포함할 수 있습니다.

참고

Sum 함수는 필드에 있는 값의 합계를 구합니다. 예를 들어, Sum 함수를 사용하여 총 운송 비용을 구할 수 있습니다.

Sum 함수는 Null 필드가 있는 레코드를 무시합니다.

다음 예제는 UnitPrice와 Quantity 필드의 합계를 구하는 방법을 보여 줍니다.

SELECT

Sum(UnitPrice * Quantity)

AS [Total Revenue] FROM [Order Details];

Sum 함수를 질의 식에 사용할 수 있습니다. QueryDef 개체의 SQL 속성에 또는 SQL 질의에서 Recordset 개체를 작성할 때 이 식을 사용할 수 있습니다.

Sum 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적되는 주문에 대한 총 판매량을 계산합니다.

다음 예제는 SELECT 문 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub SumX()

        Dim dbs As Database, rst As Recordset

        Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

        ' 영국으로 선적되는 주문에 대한 총 판매량을 계산합니다.

        Set rst = dbs.OpenRecordset("SELECT" & " Sum(UnitPrice*Quantity)" _

                & " AS [Total UK Sales] FROM Orders" & " INNER JOIN [Order Details] ON" _

                & " Orders.OrderID = [Order Details].OrderID" & " WHERE (ShipCountry = 'UK');")

' Recordset을 만듭니다.

        rst.MoveLast

        ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

        ' Recordset 개체와 원하는 필드 너비를 전달합니다.

        EnumFields rst, 15

        dbs.Close

End Sub

6. Var, VarP 함수

질의의 지정 필드에 포함된 일련의 값으로 모집단이나 모집단 표본에 대한 분산 결과를 반환합니다.

구문  Var(expr)

      VarP(expr)

expr는 사용할 데이터가 있는 필드를 나타내는 문자열 식이나 그 필드의 데이터를 사용하여 계산을 수행하는 식을 나타냅니다. expr의 피연산자는 테이블 필드의 이름, 상수, 함수(고유 함수나 사용자 정의 함수는 가능하지만 다른 SQL 계산 함수는 사용할 수 없음) 등을 포함할 수 있습니다.

참고

VarP 함수는 모집단을 계산하고 Var 함수는 모집단 표본을 계산합니다.

원본 질의에 두 개 미만의 레코드가 있을 때 Var 및 VarP 함수는 Nulldadefnull@JetDef35.hlp을 반환합니다. 이는 분산을 계산할 수 없음을 뜻합니다. 질의 식이나 SQL 문에 Var와 VarP 함수를 사용할 수 있습니다.

Var, VarP 함수 예제

다음 예제는 Orders 테이블을 사용하여 영국으로 선적되는 주문에 대한 수송료의 분산를 계산합니다.

다음 예제는 SELECT 문 예제에서처럼 EnumFields 프로시저를 호출합니다.

Sub VarX()

        Dim dbs As Database, rst As Recordset

        Set dbs = OpenDatabase("Northwind.mdb")  ' 사용자 컴퓨터의 Northwind경로를 나타내도록 다음 행을 수정하십시오.

        ' 영국으로 선적되는 주문에 대한 수송료의 분산을 계산합니다.

        Set rst = dbs.OpenRecordset("SELECT " & "Var(Freight) " _

                & "AS [UK Freight Variance] " & "FROM Orders WHERE ShipCountry = 'UK';")

        ' Recordset을 만듭니다.

        rst.MoveLast

        ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

' Recordset 개체와 원하는 필드 너비를 전달합니다.

        EnumFields rst, 20

        Debug.Print

        Set rst = dbs.OpenRecordset("SELECT " & "VarP(Freight) " _

                & "AS [UK Freight VarianceP] " & "FROM Orders WHERE ShipCountry = 'UK';")

        ' Recordset을 만듭니다.

        rst.MoveLast

        ' EnumFields를 호출하여 Recordset의 내용을 출력합니다.

        ' Recordset 개체와 원하는 필드 너비를 전달합니다.

        EnumFields rst, 20

        dbs.Close

End Sub


◆ TypeName 함수

변수에 대한 정보를 제공하는 String을 반환합니다.

구문  TypeName(varname)

사용자 정의 형식의 변수를 제외한 변수가 들어 있는 Variant를 나타내는 varname 인수가 필요합니다.

참고

TypeName이 반환하는 문자열은 다음과 같습니다.

반환되는 문자열

변수

개체 형식

Byte    

Integer  

Long   

Single  

Double  

Currency 

Decimal 

Date    

String  

Boolean 

Error   

Empty  

Null    

Object  

Unknown 

Nothing 

형식이 objecttype인 개체

바이트 값

정수

긴 정수

단정도 부동 소수점 수

배정도 부동 소수점 수

통화 값

십진 값

날짜 값

문자열

Boolean 값

오류 값

초기화 되지 않음

유효한 데이터 없음

개체

형식이 알려지지 않은 개체

개체를 참조하지 않는 개체 변수

varname이 배열이면 반환되는 문자열은 반환 가능한 문자열 (또는 Variant)에 빈 괄호가 첨가됩니다. 예를 들면, varname이 정수 배열이면 TypeName은 "Integer( )"를 반환합니다.

TypeName 함수 예제

다음은 변수에 관한 정보를 반환하기 위해 TypeName 함수를 사용하는 예제입니다.

Dim NullVar, MyType, StrVar As String, IntVar As Integer, CurVar As Currency   ' 변수를 선언합니다.

Dim ArrayVar (1 To 5) As Integer

NullVar = Null   ' Null을 지정합니다.

MyType = TypeName(StrVar)   ' "String"을 반환합니다.

MyType = TypeName(IntVar)    ' "Integer"를 반환합니다.

MyType = TypeName(CurVar)   ' "Currency"를 반환합니다.

MyType = TypeName(NullVar)  ' "Null"을 반환합니다.

MyType = TypeName(배열 차원을 나타내는 첨자가 포함된 Long을 반환합니다.


◆ Ubound 함수

배열 차원을 나타내는 첨자가 포함된 Long을 반환합니다.

구문  UBound(arrayname[, dimension])

UBound 함수 구문은 다음과 같은 구성 요소로 되어 있습니다.

구성 요소

설명

arrayname

dimension

필수 사항. 변수 배열 이름; 표준 변수 이름 규칙 준수.

선택 사항; Variant (Long). 하위 바운드 차원을 표시하는 정수를 반환합니다. 첫 번째 차원에는 1, 두 번째 차원에는 2와 같이 씁니다. dimension이 없으면 1로 가정합니다.

참고

UBound 함수를 LBound 함수와 함께 써서 배열 크기를 결정합니다. LBound 함수로 배열 차원 하한을 찾습니다.

UBound는 이 차원의 배열에 대하여 다음 값을 반환합니다.

Dim A(1 To 100, 0 To 3, -3 To 4)

              반환 값

UBound(A, 1)      100

UBound(A, 2)      3

UBound(A, 3)      4

UBound 함수 예제

다음은 UBound 함수로 배열의 표시된 차원 중 상한 값을 결정하는 예입니다.

Dim Upper

Dim MyArray(1 To 10, 5 To 15, 10 To 20)       ' 배열 변수를 선언합니다.

Dim AnyArray(10)

Upper = UBound(MyArray, 1)   ' 10을 반환합니다.

Upper = UBound(MyArray, 3)   ' 20을 반환합니다.

Upper = UBound(AnyArray)    ' 10을 반환합니다.


◆ VarType 함수

변수의 하위 형식을 나타내는 Integer를 반환합니다.

구문  VarType(varname)

사용자 정의 형식의 변수를 제외한 변수가 들어 있는 Variant를 나타내는 varname 인수가 필요합니다.


반환 값

상수

설명

 

상수

설명

vbEmpty 

vbNull  

vbInteger 

vbLong 

vbSingle 

vbDouble 

vbCurrency

vbDate  

vbString 

0

1

2

3

4

5

6

7

8

Empty (초기화되지 않음)

Null (유효한 데이터 없음)

정수

긴 정수

단 정도 부동 소수점 수

배 정도 부동 소수점 수

통화 값

날짜 값

문자열

vbObject    

vbError    

vbBoolean

vbVariant

vbDataObject

vbDecimal

vbByte     

vbArray    

9

10

11

12

13

14

17

8192

개체

오류 값

Boolean 값

Variant (오로지 변수 배열과 함께 사용)

데이터 액세스 개체

십진 값

바이트 값

배열

메모   응용 프로그램용 Visual Basic에서 이 상수를 지정합니다. 코드에서 실제 값 대신 이 상수 이름을 사용할 수 있습니다.

참고  VarType 함수는 vbArray 값만을 되돌려 주지 않고, 그 값을 항상 특별한 형식의 배열을 나타내는 다른 값에 추가합니다. 상수 vbVariant는 VarType 함수에 대한 인수가 Variant 형식의 배열임을 나타내는 vbArray와 함께 반환됩니다. 예를 들면, 정수 배열에 반환되는 값은 vbInteger + vbArray, 또는 8194로 계산됩니다. 개체에 기본 속성이 있으면 VarType (object)은 개체의 기본 속성 형식을 반환합니다.

VarType 함수 예제  다음은 변수의 하위 형식을 결정하기 위해 VarType 함수를 사용하는 예제입니다.

Dim IntVar, StrVar, DateVar, MyCheck

IntVar = 459: StrVar = "Hello World": DateVar = #69/2/12#     ' 변수를 초기화합니다.

MyCheck = VarType(IntVar)   ' 2를 반환합니다.

MyCheck = VarType(DateVar)  ' 7을 반환합니다.

MyCheck = VarType(StrVar)   ' 8을 반환합니다.



 

 

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 33821
64 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 _ 윈도우 도움말 file [레벨:30]아별 2017-04-21 39351
» [펌] Visual Basic (비쥬얼 베이직) 함수 정리 imagefile [레벨:30]아별 2009-11-27 20068
62 시트에서 콤보박스 활용하기 file [레벨:30]a☆ 2005-11-12 16709
61 메시지 박스 대용으로 Shape 사용하기 file [레벨:30]아별 2009-05-07 16045
60 기타 [펌] 엑셀 VBA 총정리 _ Excel 개체 모델 참조 등 image [2] [레벨:30]아별 2010-03-09 15921
59 [VBA] 전역변수 설정하기. Public 문, Private 문 imagefile [레벨:30]아별 2008-07-01 14019
58 엑셀에서 사용하는 언어 확인하기. file [1] [레벨:30]아별 2009-06-03 13776
57 기타 [펌] VBA 공부를 시작하시는분들에게 추천하는 강의자료 imagefile [4] [레벨:30]아별 2011-03-21 13698
56 기타 [Excel VBA] 피벗테이블(PivotTable)을 VBA로 컨트롤해보자.. [레벨:30]아별 2008-12-19 12077
55 [엑셀VBA] 자동필터를 매크로로 구현하기 [레벨:30]아별 2008-08-28 11225
54 엑셀에서 달력 집어 넣기.. [1] [레벨:30]a☆ 2004-10-21 10949
53 엑셀2007에서 셀의 색상을 RGB로 뽑아내기 file [레벨:30]아별 2009-10-06 10197
52 엑셀의 유저폼 관련 [1] [레벨:30]a☆ 2004-10-21 10049
51 엑셀에서 줄바꿈에 대해서.. 줄바꿈하기 제거하기 등등.. [레벨:30]a☆ 2004-11-15 9992
50 기타 [링크] VBA로 파일을 다루는 방법에 대한 강좌들을 모아놓은 겁니다. [레벨:30]아별 2010-03-03 9833
49 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 file [2] [레벨:30]아별 2011-10-05 9219
48 [엑셀VBA] 네이버 지식인 답변 _ 엑셀 쿼리를 이용해서 펀드 기준가 데이터를 읽어오기. file [레벨:30]아별 2008-04-30 9120
47 기타 VBA _ 레지스트리 다루기 ( registry control ) imagefile [레벨:30]아별 2011-03-19 8672
46 [10/19일 수정] 엑셀 매크로 수정하기... [2] [레벨:30]a☆ 2003-09-29 8250