안녕하세요?
아별닷컴의 주인장 오주원입니다. ^^
요즘 인디언식 이름 짓기.. 중세 유럽식 이름 짓기, 일본식 이름 짓기가 유행이잖아요? ^_^;;
그래서 생년월일을 집어 넣으면 자동으로 이름을 변환해주는 사용자 정의 함수를 만들어봤습니다. ㅎㅎ
원래는 VLookup만으로도 충분히 만들 수 있는데..
굳이 VBA를 이용해서 사용자 정의 수식으로 만든 이유는..
~는(은), ~와(과), ~를(을) 등의 조사때문이었습니다. +_+;;
푸른 말을(를) 보라. 라고 하면 모냥이 안나니까.. ^_^;;
바로 앞의 명사의 마지막 글자에 종성이 있는지 여부에 따라 을또는 를을 붙이게끔 만들었습ㄴ다.
마지막 글자에 종성이 있는지 아는지 아는 사용자 정의 함수는 아래와 같습니다.
'### 한글 글자에 종성이 있는지 확인하는 코드
'### Created by abyul.com (Joowon Oh)
'### Date : 2012.01.11
Private Function existJongSeong(strTarget As String)
existJongSeong = IIf(((CDbl("&h" & Hex(AscW(strTarget))) - 44032) Mod (21 * 28)) Mod 28 = 0, False, True)
End Function
만드는 김에..
글자를 초성, 중성 종성으로 나누어 주는 사용자 정의 함수도 만들어서 아별툴에 넣어버렸습니다. +_+;;
한글의 유니코드 조합 방법만 알면.. 의외로 간단히 구현할 수가 있습니다.
'### 한글 코드 = "가"의 코드인 44032 + (초성*21*28) + (중성*28) + 종성
한글의 유니코드는 아래의 범위 값을 갖습니다.
44032 ~ 55203
다르게 표시하면..
CDbl("&h" & Hex(AscW("가"))) ~ CDbl("&h" & Hex(AscW("힣")))
문자의 유니코드를 뽑아내려면.. Asc가 아닌 AscW를 써야한다는 것만 주의 하시면 되겠습니다.
Asc는 시스템 코드를 리턴한다능.. 시스템 코드 vs 유니코드.. @_@;;
자세한 로직은 아래 링크를 참고하세요..
http://cafe.naver.com/flashdev/38144
http://cafe.naver.com/woosyong/127
다운 받기 : abyul.com_20120111_IndianName-2.xlsm
[ 미리 보기 ]
...
...
...
전체 코드는 첨부파일에 있어요~ ^^