세진세상
VBA 문자열 함수 #2(StrConv, Format) 본문
VBA 문자열 함수 #2
VBA의 문자열 함수 중에서 '출력 방식'에 관련한 함수를 알아보겠다.
함수마다 여러 옵션을 가지고 있다. 이를 학습하면서 그 일부를 실습해보자.
StrConv(문자열, 옵션)
입력된 문자열을 옵션에 따라 변환된 문자열을 리턴한다.
변환 옵션은 코드 타이핑 시 자동 완성 기능이 도와주기 때문에 외울 필요까지는 없다.
다만, 해당 옵션이 무엇을 의미하는지 알아두자.
변환 옵션
vbUpperCase (1) : 문자열을 모두 대문자로 변환
vbLowerCase (2) : 문자열을 모두 소문자로 변환
vbProperCase (3) : 문자열의 각 단어 첫글자를 대문자로 변환
vbWide (4) : 1byte 문자를 2byte로 변환
vbNarrow (8) : 2byte 문자를 1byte로 변환
vbKatakana (16) : 일본어 히라가나를 가타카나로 변환
vbHiragana (32) : 일본어 가타카나를 히라가나로 변환
vbUnicode (64) : ANSI에서 Unicode로 변환
vbFromUnicode (128) : Unicode를 ANSI로 변환
괄호 안에는 숫자는 옵션을 줄여서 쓸 수 있는 값이다.
대/소문자를 변환하는 옵션은 그런대로 활용도가 있지만, 나머지 옵션은 애매한 편이다.
여기에 ANSI, Unicode 변환 옵션이 있는데, 간단하게 알아보겠다.
각 문자는 매칭된 숫자 코드를 가지고 있는데, 아스키(ASCII) 코드와 유니코드(Unicode)가 일반적이다.
ANSI 코드는 특수문자 등을 확장시킨 아스키코드라고 생각하면 되겠다.
위 옵션 중에 일부만 실습해보자.
스타워즈의 명대사, 'I am your Father' 를 세 가지 옵션을 활용해 출력해보겠다.
1 2 3 4 5 6 7 8 9 10 11 12 | Sub StrConv_ex() Dim str As String str = "I am your Father" Debug.Print str; "의 문자열 변환" Debug.Print "Upper Case : "; StrConv(str, vbUpperCase) Debug.Print "Proper Case : "; StrConv(str, vbProperCase) Debug.Print "Wide : "; StrConv(str, vbWide) End Sub | cs |
심심하면 다른 옵션도 실습해보면 되겠다.
Format(문자열, 출력 포멧)
문자열을 출력포멧에 맞게 만들어주는 함수다.
사용자가 서식지정자를 사용해 임의의 서식을 지정하고, 함수를 통해 해당 서식의 형태로 문자열이 출력된다.
이를테면 전화번호 023456789를 (02)345-6789 와 같은 형식으로 만들 수 있다.
서식지정자
@ : 해당 위치에 문자가 있으면 표시, 없으면 공백으로 표시
& : 해당 위치에 문자가 있으면 표시, 없으면 표시하지 않음
> : 모든 문자를 대문자로 표시
< : 모든 문자를 소문자로 표시
! : 서식의 입력 방향을 반대로 하여 입력, 기본은 오른쪽에서 왼쪽으로 채워넣는다.
Format 함수는 문자열만이 아니라, 숫자와 날짜/시간 등도 서식을 지정할 수 있다.
지금은 문자열에 대해서만 실습해보겠다.
1. 123456789를 전화번호 형식으로 넣되, @와 &의 차이를 확인하자.
2. Thank You를 모두 대/소문자로 표시해보자.
3. 123456789를 전화번호 형식으로 넣되, !를 사용해 반대방향으로 입력하며 @와 &의 차이를 확인하자.
1 2 3 4 5 6 7 8 9 10 11 12 | Sub Format_ex() '1 Debug.Print "@ : "; Format("123456789", "(@@@)@@@-@@@@") Debug.Print "& : "; Format("123456789", "(&&&)&&&-&&&&") '2 Debug.Print "> : "; Format("Thank You", ">") Debug.Print "< : "; Format("Thank You", "<") '3 Debug.Print "!@ : "; Format("123456789", "!(@@@)@@@-@@@(@)") Debug.Print "!& : "; Format("123456789", "!(&&&)&&&-&&&(&)") End Sub | cs |
@와 &의 차이인 공백의 유무를 충분히 확인할 수 있다.
지금까지 문자열의 출력 방식을 지정하는 간단한 함수를 알아보았다.
StrConv 함수는 변환 옵션을 정해져 있고, Format 함수는 서식지정자를 아용한 커스터마이징이 특징이었다.
다음에는 다른 기능의 문자열 함수를 이어서 학습하겠다.
'VBA' 카테고리의 다른 글
VBA 문자열 함수 #4(Split, Join) (0) | 2018.02.27 |
---|---|
VBA 문자열 함수 #3(Left, Right, Mid, LTrim, RTrim, Trim) (0) | 2018.02.23 |
VBA 문자열 함수 #1(StrComp, IsNull, InStr) (0) | 2018.02.12 |
VBA 반복문 #2(Do While, Do Until) (0) | 2018.02.05 |
VBA 반복문 #1(For Next, For Each Next) (0) | 2018.01.31 |