Visual Basic 함수정리(D)
출처 : http://blog.naver.com/chchcom?Redirect=Log&logNo=3156879
◆ Date 함수
현재 시스템 날짜를 포함한 Variant(Date) 값을 반환합니다.
▶ 구문 :
Date
▶ 예제
Dim MyDate
MyDate = Date ' MyDate에 현재 시스템 날짜가 포함되어 있습니다.
◆ DateAdd 함수
특정 시간 간격을 포함한 Variant (Date) 값을 반환합니다.
▶ 구문 :
DateAdd(interval, number, date)
interval : 필수. 문자열 식을 사용하여 시간 간격을 표시합니다.
yyyy 연도
w 요일
q 분기
ww 주
m 월
h 시간
y 일자
n 분
d 일
s 초
Number : 날짜에 시간 간격을 가감합니다.
Date : Variant (Date) 형의 날짜에는 시간 간격이 가감됩니다.
▶ 예제
DateAdd("m", 1, "31-Jan-95") ' 날짜를 더할 때, 연("y"), 일("d")이나 요일("w")을 사용합니다.
위의 경우, DateAdd 함수는 95년-2월-31일이 아닌 95년-2월-28일을 반환합니다.
만약 date 가 96년 1월 31일인 경우는 윤년이기 때문에 96년 2월 29일을 반환합니다.
number가 Long 값이 아닌 경우는, 가까운 정수값으로 반올림한 후 계산합니다.
◆ 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 인수는 다음과 같은 구성 요소로 되어 있습니다
상 수
값
설 명
상 수
값
설 명
vbUseSystemVb
Sunday
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를 포함하고 있습니다.
◆ DDB 함수
이중 체감 잔액법(double-declining balance method)이나 지정한 다른 방법을 사용하여 특정 기간 동안 자산의 감가상각을 지정하는
Double을 반환합니다.
▶ 구문 : DDB(cost, salvage, life, period[, factor])
DDB 함수는 다음과 같이 명명된 인수로 구성되어 있습니다.
구성 요소
설명
cost
Salvage
Life
Period
Factor
필수. 초기 자산 비용을 지정하는 Double.
필수. 유용 기간이 끝나는 시점의 자산 액수를 지정하는 Double.
필수. 자산의 유용 기간 길이를 지정하는 Double.
필수. 자산 감가상각이 계산되는 기간을 지정하는 Double.
선택. 잔액이 감퇴하는 비율을 지정하는 Variant. 생략하면 2(이중 체감법)로 간주합니다.
▶ 참고 : 이중체감 잔액법은 가속화된 비율로 감가상각을 계산합니다. 감가상각은 최초의 기간에서 가장 높고 연속적으로 감소합니다.
▶ 인수 life와 period는 같은 단위로 표시해야 합니다. 예를 들면 life의 단위가 달이면 period도 달로 표시해야 합니다. 인수들은 모두
양수이어야 합니다.
DDB 함수는 다음 공식을 사용하여 주어진 기간 동안의 감가상각을 계산합니다.
감가상각 / period = ((cost-salvage) * factor) / life
명명된 인수
개체 라이브러리에서 먼저 정의된 이름을 가진 인수를 의미합니다. 구문에서 요구하는 지정된 순서의 각 인수 값을 제공하는 대신에 사용자는
명명된 인수를 사용하여 임의의 순서로 값을 할당할 수 있습니다. 예를 들면 다음과 같이 세 개의 인수를 받는 방법을 제안합니다.
DoSomeThing namedarg1, namedarg2, namedarg3
값을 명명된 인수에 할당함으로써 사용자는 다음의 문을 사용할 수 있습니다.
DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20
명명된 인수는 구문의 정상 배치 순서로 나타내지 않아도 된다는 것을 주의하십시오.
DDB 함수 예제
초기 비용(InitCost), 자산 유효 기간 말기의 공제액(SalvageVal), 자산의 연 단위 총 기간(LifeTime), 감가상각액이 계산될 연 단위
의 기간(Depr) 등이 주어진 지정된 분기에 대한 자산의 감가상각액을 반환하기 위해 DDB 함수를 사용하는 예제입니다.
Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, Depr
Const YRMOS = 12 ' l년 동안의 달 수.
Fmt = "###,##0.00"
InitCost = InputBox("자산의 처음 가격은 얼마입니까?")
SalvageVal = InputBox("유효 기간이 끝날때 자산의 값을 입력합니다.")
MonthLife = InputBox("몇달 내에서 자산의 사용 가능한 유효 기간은 언제입니까?")
Do While MonthLife < YRMOS ' 기간이 1년 이상인가를 검사합니다.
MsgBox "자산 유효 기간은 1년 또는 그 이상이 되어야 합니다."
MonthLife = InputBox("몇달 내에서 자산의 사용 가능한 유효 기간은 언제입니까?")
Loop
LifeTime = MonthLife / YRMOS ' 달을 년으로 변환합니다.
If LifeTime <> Int(MonthLife / YRMOS) Then
LifeTime = Int(LifeTime + 1) ' 가장 최근의 해로 반올림합니다.
End If
DepYear = CInt(InputBox("감가상각 계산을 위해 년도를 입력합니다."))
Do While DepYear < 1 Or DepYear > LifeTime
MsgBox LifeTime& "적어도 1년이나 그 이하를 입력해야 합니다."
DepYear = InputBox("감가상각 계산을 위해 년도를 입력합니다.")
Loop
Depr = DDB(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "그 해의 감가상각은 " & DepYear & " 입니다 "& _
Format(Depr, Fmt) & "."
◆ 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
◆ DoEvents 함수
운영 체제가 다른 이벤트를 처리할 수 있도록 실행을 넘겨줍니다.
▶ 구문 : DoEvents( )
▶ 참고 : DoEvents 함수는 Visual Basic, Standard Edition과 같은 독립 실행용 버전 Visual Basic에서 열려있는 폼의 수를 나타내는 Integer값을
반환합니다. DoEvents는 다른 모든 응용프로그램에서는 0을 반환합니다. DoEvents는 컨트롤을 운영 체제에 전달하며, 운영체제가
대기열에 있는 이벤트의 처리를 끝내고 SendKeys 대기열에 있는 모든 키들이 보내진 후에 컨트롤은 반환됩니다.
DoEvents는 예를 들어, 파일 검색처럼 시작한 후 사용자가 그 프로세스를 취소할 수 있도록 해주는 것과 같은 간단한 작업에 아
주 유용합니다. 오랫동안 실행되는 프로세스의 경우, Timer를 사용하거나 ActiveX EXE 구성 요소에 그 작업을 위임함으로써 그 프
로세서를 넘겨주는 작업이 더 잘 수행될 수 있습니다. ActiveX EXE 구성 요소에 위임할 경우, 그 작업은 사용자의 응용 프로그램
과는 독자적으로 완벽하게 실행될 수 있고 운영 체제가 다중 작업과 시간 분할을 담당합니다.
주의
이벤트 프로시저 내의 프로세서를 일시적으로 넘겨줄 때는, 첫번째 호출이 반환되기 전에 프로시저가 코드의 다른 부분에서 다시 실행되지
않도록 주의하십시오. 이런 경우 예상치 않은 결과를 초래할 수 있습니다. 또한 컨트롤을 넘겨주는 동안 다른 응용 프로그램이 예기치 않은
방법으로 프로시저와 상호작용할 가능성이 있을 경우, DoEvents를 사용하지 않도록 하십시오.
DoEvents 함수 예제
이 예제는 DoEvents 함수를 사용하여 루프의 매 1000번 반복 때마다 한 번씩 운영 체제가 실행을 하도록 합니다. DoEvents는 호
스트 프로그램이 Visual Basic일 때에만 열린 Visual Basic 폼의 수를 반환합니다.
Dim I, OpenForms ' 불러들여 표시된 Visual Basic 폼의 수를 보유할 변수를 작성합니다.
For I = 1 To 150000 ' 루프를 시작합니다.
If I Mod 1000 = 0 Then ' if 루프가 1000번 반복되었습니다.
OpenForms = DoEvents ' 운영 체제로 넘깁니다.
End If
Next I ' 루프 카운터 증가