이름을 받고, 열번호를 받아서 그에 맞는 숫자를 입력하는 매크로
자음, 모음만 분리하면 어렵지 않은 문제다.
게다가 자음, 모음 분리하는 매크로가 인터넷에 있어서 쉽게 푼 문제.
Function fnName(num As Integer, inName As String) Dim 초성 As Variant, 중성 As Variant, 종성 As Variant Dim vR() As Variant Dim i As Integer, j As Integer, n As Long, k1 As Integer, k2 As Integer, k3 As Integer Dim endJoin As String Dim rngName As Range 초성 = Array("ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ", "ㅂ", "ㅃ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅉ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ") 중성 = Array("ㅏ", "ㅐ", "ㅑ", "ㅒ", "ㅓ", "ㅔ", "ㅕ", "ㅖ", "ㅗ", "ㅘ", "ㅙ", "ㅚ", "ㅛ", "ㅜ", "ㅝ", "ㅞ", "ㅟ", "ㅠ", "ㅡ", "ㅢ", "ㅣ") 종성 = Array("", "ㄱ", "ㄲ", "ㄳ", "ㄴ", "ㄵ", "ㄶ", "ㄷ", "ㄹ", "ㄺ", "ㄻ", "ㄼ", "ㄽ", "ㄾ", "ㄿ", "ㅀ", "ㅁ", "ㅂ", "ㅄ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ") For i = 1 To Len(inName) If Mid(inName, i, 1) Like "[가-힇]" Then n = AscW(Mid(inName, i, 1)) + 21504 k1 = Int(n / (21 * 28)) k2 = Int((n Mod 21 * 28) / 28) k3 = n Mod 28 j = j + 1 ReDim Preserve vR(1 To j) vR(j) = 초성(k1) & 중성(k2) & 종성(k3) End If Next i '분리된 자,모음에 들어간 띄어쓰기 없애며 Join endJoin = Replace(Join(vR), " ", "") 'A열 정의 With Range("A2") Set rngName = Range(.Cells, .End(xlDown)) End With '자,모와 일치하는 값 찾기 j = 1 For i = 1 To Len(endJoin) ReDim Preserve vR(1 To j) vR(j) = rngName.Find(Mid(endJoin, i, 1)).Offset(, num + 1).Value j = j + 1 Next i fnName = Replace(Join(vR), " ", "") End Function cs
'VB(A)' 카테고리의 다른 글
폴더 선택하여 텍스트파일 한줄로 가져오기 (0) | 2015.02.25 |
---|---|
일부 시트들을 새 파일로 저장 (0) | 2015.02.23 |
시트별로 파일 저장 (0) | 2015.02.21 |
Collection 객체를 활용하여 중복값 찾기 (0) | 2015.02.19 |
숫자만 인식하기 (0) | 2015.02.17 |