Visual Basic 함수정리(I)
출처 : http://blog.naver.com/chchcom?Redirect=Log&logNo=3156879
◆ 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
◆ 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에 대한 인수 상수 입니다.
◆ Input 함수
Input 또는 Binary 모드로 연 파일로부터 문자가 들어 있는 String을 반환합니다.
▶ 구문 : Input(number, [#]filenumber)
Input 함수는 다음과 같은 구성 요소로 되어 있습니다.
구성 요소 설명
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 ' 파일을 닫습니다.
◆ 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을 반환합니다.
◆ Int 함수
특정 숫자의 정수 부분을 전달된 형식의 값으로 반환합니다.
▶ 구문
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를 반환합니다.
◆ IPmt 함수
정기 고정 지불액과 고정 이율을 기준으로 일정 기간 동안 연금의 이자 지불액을 지정하는 Double을 반환합니다.
▶ 구문 : IPmt(rate, per, nper, pv[, fv[, type]])
IPmt 함수는 다음과 같이 명명된 인수로 구성되어 있습니다.
구성 요소
설명
rate
필수. 일정 기간 당 이율을 지정하는 Double 입니다. 예를 들면 연 이율(APR) 10%로 자동차 대부를 받고 매월
지불하려면 기간 당 비율은 0.1/12 또는 0.0083이 됩니다.
구성 요소
설명
per
nper
pv
fv
type
필수.필수. 연금의 총 지불 기간 수를 지정하는 Double 입니다. 예를 들면 4년 동안의 자동차 대부에 대해 매
월 상환하려면 지불 기간은 총 4 * 12 (또는 48)가 됩니다.1에서 nper 에 이르는 지불 기간을 지정하는
Double 입니다.
필수. 장래의 지불액이나 수령액에 대한 현재의 값을 지정하는 Double 입니다. 예를 들면 돈을 대출받아 차를
살 때 대출액은 대금업자에게 매달 지불할 현재의 값이 됩니다.
선택. 마지막으로 지불한 후에 원하는 장래의 값이나 자금 잔액을 지정하는 Variant입니다. 예를 들면 마지막으
로 지불한 후의 가치가 없으므로 장래의 대출금은 0원이 됩니다. 그러나 자녀들의 교육 기간 18년에 걸쳐
37,500,000원을 저축하고 싶다면 장래의 값은 37,500,000원이 됩니다. 생략하면 0으로 간주합니다.
선택. 지불 만기일을 지정하는 Variant 입니다. 지불 기간이 끝날 때 지불액을 지불하려면 0, 기간이 시작될 때
지불하려면 1을 사용합니다. 생략하면 0으로 간주합니다.
▶ 참고 : 연금은 일정 기간에 걸쳐 고정된 금액을 지불하는 것입니다. 연금은 대부(주택 저당과 같이)나 투자(월별 저축 계획과 같이)가 될
수 있습니다.
▶ 인수 rate와 nper는 같은 단위로 표시된 지불 기간을 사용하여 계산해야 합니다. 예를 들면 rate를 달로 계산하면 nper도 달로 계산
해야 합니다.
모든 인수에 대해 지불하는 금액(예: 저축 예금)은 음수로, 수령하는 금액(예: 배당금)은 양수로 표시됩니다.
IPmt 함수 예제
다음은 모든 불입액이 균등해질 때 얼마 만큼의 이자가 생기는지 계산하기 위해 IPmt 함수를 사용하는 예제입니다.
분기당 이자율(APR / 12), 이자가 나오기 위한 불입 기간(Period), 총 불입 회수(TotPmts), 현 융자액 또는 융자원금(PVal), 미래 융
자액(FVal), 기수불 또는 기말불 어느 쪽에 불입이 이루어지는지 가리키는 수(PayType) 등이 주어집니다.
Dim FVal, Fmt, PVal, APR, TotPmts, PayType, Period, IntPmt, TotInt, Msg
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' 불입이 된 경우.
FVal = 0 ' 대개 융자금에 대해서는 0으로 주어집니다.
Fmt = "###,###,##0.00" ' 금액 서식을 정의합니다.
PVal = InputBox("얼마를 빌리겠습니까?")
APR = InputBox("대부금의 1년당 퍼센트 비율은 얼마입니까?")
If APR > 1 Then APR = APR / 100 ' 적절한 형태인지 확인합니다.
TotPmts = InputBox("매달 지불할 금액은?")
PayType = MsgBox("월말에 지불하겠습니까?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
For Period = 1 To TotPmts ' 모든 이자의 합입니다.
IntPmt = IPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
TotInt = TotInt + IntPmt
Next Period
Msg = "총 금액을 지불해야 합니다 " & Format(TotInt, Fmt)
Msg = Msg & " 이 대부금의 이자로."
MsgBox Msg ' 표시 결과.
◆ IRR 함수
일정 기간의 자금 흐름(지불액과 수령액)에 대한 내부 수익률을 지정하는 Double을 반환합니다.
▶ 구문 : IRR(values()[, guess])
IRR 함수는 다음과 같이 명명된 인수로 구성되어 있습니다.
구성 요소 설명
values() 필수. 자금 흐름 값을 지정하는 Double 유형의 배열입니다. 배열에는 최소 하나의 음수(지불액)와 하나의 양수(수령액)
가 들어 있어야 합니다.
guess 선택. 추정치를 지정하는 Variant는 IRR로 얻을 수 있습니다. 생략하면 guess는 0.1 (10%)이 됩니다.
▶ 참고 : 내부 수익률은 일정 기간에 발생한 지불액과 수령액으로 구성된 투자에 대해 받게 되는 이율입니다.
IRR 함수는 배열에 있는 값의 순서를 사용하여 지불액과 수령액의 순서를 해석합니다. 지불액과 수령액을 정확한 순서로 입력
했는지 확인하십시오. 각 기간 동안의 자금 흐름은 수정할 필요가 없습니다.
IRR은 반복적으로 계산됩니다. IRR은 guess 값으로 시작하여 결과가 0.00001%에 이를 때까지 계산을 반복합니다. 20번을 시도한
후에도 IRR이 결과를 찾을 수 없으면 실패하게 됩니다.
IRR 함수 예제
다음 예제에서 IRR 함수는 Values( ) 배열 내에 포함된 다섯 가지의 연속적인 자금 흐름에 대한 내부 수익률을 반환합니다. 첫번
째 배열 요소는 사업 개시 비용을 나타내는 음수로 표현되는 자금입니다. 나머지 4 개의 자금 흐름은 그 후 4년 동안의 양수로
표현되는 자금 흐름을 나타냅니다. Guess는 예상 내부 수익률입니다.
Dim Guess, Fmt, RetRate, Msg
Static Values(5) As Double ' 배열 설정.
Guess = .1 ' Guess 변수를 10퍼센트에서 시작.
Fmt = "#0.00" ' 백분율 유형을 정의.
Values(0) = -70000 ' 사업 초기 비용.
' 연속 4년에 대한 소득을 반영하는 양의 값을 갖는 자금 흐름.
Values(1) = 22000 : Values(2) = 25000
Values(3) = 28000 : Values(4) = 31000
RetRate = IRR(Values(), Guess) * 100 ' 내부 이자율 계산.
Msg = "이 5개 현금 유입에 대한 반환 내부 비율입니다 "
Msg = Msg & Format(RetRate, Fmt) & " 퍼센트."
MsgBox Msg ' 내부 배당금 이자율을 표시.
◆ 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를 반환합니다.
◆ 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를 반환합니다.
◆ 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를 반환합니다.
◆ 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를 반환합니다.
◆ 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를 반환합니다.