vba chr chrw 등 문자 함수...펌
re: 비주얼 공부중 용어와 함수 좀 설명해 주세요
- used77
- 답변채택률88.7%
- 2008.06.17 21:35
질문자 인사
ㄳ
◆ 모달(Modal)
- 대화상자가 열려있는 상태에서 다른 대화상자를 열면 다른 대화상자로 이동할 수 있습니다.
사용예) form2.show vbModal
◆ 모달리스(Modaless)
- 대화상자가 열려있는 상태에서 다른 대화상자를 선택하여도 이동하지 않습니다. 현재 열려있는 대화상자의 지시나 처리를 하지않으면 안됩니다
사용예) form2.show vbModaless
◆ 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를 반환합니다.
◆ 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 값을 반환합니다.
Chr 함수 예제 다음은 Chr 함수를 사용하여, 지정된 문자 코드에 대한 문자를 구해내는 예제입니다.
Dim MyChar
MyChar = Chr(65) ' A를 반환합니다.
MyChar = Chr(97) ' a를 반환합니다.
MyChar = Chr(62) ' >를 반환합니다.
MyChar = Chr(37) ' %를 반환합니다.
◆ 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"를 반환합니다.
◆ 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"를 반환합니다.
◆ 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"를 반환합니다.
◆ 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->".
◆ 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일이 포함된 주를 지정. |
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일이 포함된 주를 지정합니다. |
DatePart 함수 예제
이 예제는 날짜를 선택하고 DatePart 함수를 사용하여 그 해의 4분기를 나타냅니다.
Dim TheDate As Date ' 변수를 선언합니다.
Dim Msg
TheDate = InputBox("Enter a date:")
Msg = "Quarter: " & DatePart("q", TheDate)
MsgBox Msg
DatePart()
◆ DateSerial 함수
지정된 년, 월, 일의 Variant (Date) 값을 반환합니다.
구문 DateSerial(year, month, day)
DateSerial 함수 구문은 다음과 같은 이름 지정된 인수 형식으로 사용합니다
구성 요소 | 설명 |
year Month Day | 필수.정수. 숫자 식을 포함한 100과 9999 사이의 숫자를 나타냅니다. 필수. 정수. 모든 숫자 식. 필수. 정수. 모든 숫자 식. |
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는 숫자 식을 사용하여 지정된 범위 내의 날짜, 시간, 일시 등을 나타냅니다.
DateValue 함수 예제
이 예제는 DateValue 함수를 사용하여 문자열을 날짜로 변환합니다.
사용자는 날짜 문자를 사용하여 날짜를 직접 Variant이나 Date 변수로 할당할 수 있습니다.
예를 들면, MyDate = #2/12/69#.
Dim MyDate
MyDate = DateValue("February 12, 1969") ' 날짜를 반환합니다.
◆ 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). 모든 숫자 식. |
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을 반환합니다.
TimeValue 함수 예제
이 예제는 TimeValue 함수를 사용하여 문자열을 시간으로 변환합니다. 사용자는 날짜 문자를 사용하여 시간을 직접 Variant나 Date 변수로 할당할 수 있습니다. 예를 들면, MyTime = #4:35:17 PM#.
Dim MyTime
MyTime = TimeValue("4:35:17 PM") ' 시간을 반환합니다.
◆ Ubound 함수
배열 차원을 나타내는 첨자가 포함된 Long을 반환합니다.
구문 UBound(arrayname[, dimension])
UBound 함수 구문은 다음과 같은 구성 요소로 되어 있습니다.
구성 요소 | 설명 |
arrayname dimension | 필수 사항. 변수 배열 이름; 표준 변수 이름 규칙 준수. 선택 사항; Variant (Long). 하위 바운드 차원을 표시하는 정수를 반환합니다. 첫 번째 차원에는 1, 두 번째 차원에는 2와 같이 씁니다. dimension이 없으면 1로 가정합니다. |
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을 반환합니다.
◆ LBound 함수
지정된 배열 차원에 사용할 수 있는 가장 작은 첨자를 포함하는 Long을 반환합니다.
구문 LBound(arrayname[, dimension])
LBound 함수 구문은 다음과 같은 구성 요소로 되어 있습니다.
구성 요소 | 설명 |
arrayname dimension | 필수 사항. 배열 변수 이름; 표준 변수 이름 규칙 준수. 선택 사항; Variant (Long). 하위 바운드 차원을 표시하는 정수를 반환합니다. 첫 번째 차원에는 1, 두 번째 차원에는 2와 같이 씁니다. dimension이 없으면 1로 가정합니다. |
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을 반환합니다.
◆ Option Base 문
배열 첨자의 기본 하한값을 선언하기 위해 모듈 수준에서 사용됩니다.
구문
Option Base {0 | 1}
참고
기본값은 0이기 때문에 Option Base 문은 선택 사항이며, 문을 사용할 때는 모든 프로시저 앞의 모듈에 선언해야 합니다. Option Base는 모듈 내에서 한번만 선언할 수 있으며, 반드시 배열의 차원을 포함한 선언 앞에 두어야 합니다.
메모 Dim , Private, Public, ReDim, Static 문에서의 To 절은 배열 인수의 범위를 더 융통성 있게 사용할 수 있습니다. 그러나 To 절에 최소 범위값을 지정하지 않은 경우 Option Base 문을 사용하여 기본값 최소 범위값을 1로 변경할 수 있습니다. Array 함수 또는 ParamArray 키워드가 0이며 Option Base 문은 Array 또는 ParamArray에 영향을 주지 않습니다.
Option Base 문은 사용한 모듈의 배열의 최소 범위값에만 영향을 줍니다.
Option Base 문 예제
이 예제는 Option Base 문을 사용하여 기본 기준 배열 첨자 값인 0을 무효화합니다. LBound 함수는 배열의 지시된 차원에 대한 가장 작은 사용 가능한 첨자를 반환합니다. Option Base 문은 모듈 수준에서만 사용됩니다.
Option base 1 '
기본
배열
첨자를
1
로
지정합니다
. Dim Lower Dim MyArray(20), TwoDArray(3, 4) '
변수를
선언합니다
. Dim ZeroArray(0 To 5) '
기본값
기본
첨자를
무효화합니다
. ' LBound
함수를
사용하여
배열의
하위
제한
범위를
검사합니다
. Lower = LBound(MyArray) ' 1
을
반환합니다
. Lower = LBound(TwoDArray, 2) ' 1
을
반환합니다
. Lower = LBound(ZeroArray) ' 0
을
반환합니다
.