1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

출처 : http://www.program1472.com/bbs/board.php?bo_table=TB_03&wr_id=62&page=2

원출처 : https://dorobo.tistory.com/354


[이하 퍼옴]

 Function fnName(inName As StringAs 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
    초성 = 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
    fnName = Replace(Join(vr), " """)
End Function
실제 타이핑에 사용하도록 수정


Function fnName(inName As StringAs 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
    초성 = 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
    fnName = Replace(Join(vr), " """)
End Function
사용중

Function Jamo(T As String)
    Dim ChoSung As Variant, JOONGSUNG As Variant, JongSung As Variant
    Dim i As Integer, K As Long
    Dim T1 As String, T2 As String, T3 As String
    ChoSung = Array("ㄱ""ㄲ""ㄴ""ㄷ""ㄸ""ㄹ""ㅁ""ㅂ""ㅃ""ㅅ""ㅆ""ㅇ""ㅈ""ㅉ""ㅊ""ㅋ""ㅌ""ㅍ""ㅎ")
    JOONGSUNG = Array("ㅏ""ㅐ""ㅑ""ㅒ""ㅓ""ㅔ""ㅕ""ㅖ""ㅗ""ㅗㅏ""ㅗㅐ""ㅗㅣ""ㅛ""ㅜ""ㅜㅓ""ㅜㅔ""ㅜㅣ""ㅠ""ㅡ""ㅡㅣ""ㅣ")
    JongSung = Array(Empty, "ㄱ""ㄲ""ㄱㅅ""ㄴ""ㄴㅈ""ㄴㅎ""ㄷ""ㄹ""ㄹㄱ""ㄹㅁ""ㄹㅂ""ㄹㅅ""ㄹㅌ""ㄹㅍ""ㄹㅎ""ㅁ""ㅂ""ㅂㅅ""ㅅ""ㅆ""ㅇ""ㅈ""ㅊ""ㅋ""ㅌ""ㅍ""ㅎ")
    For i = 1 To Len(T)
        If Mid(T, i, 1) Like "[가-힣]" Then
            K = AscW(Mid(T, i, 1))
            K = K - &HAC00
            T1 = Int(K / (21 * 28))
            T2 = Int((K Mod 21 * 28/ 28)
            T3 = K Mod 28
            Jamo = Jamo & ChoSung(T1) & JOONGSUNG(T2) & JongSung(T3)
        Else
            Jamo = Jamo + Mid(T, i, 1)
        End If
    Next
End Function


영타로 바로출력 << 사용중...

Function SplitEnglish(T As String)
    Dim ChoSung As Variant, JoongSung As Variant, JongSung As Variant
    Dim vR()
    Dim i As Integer, j As Integer, n As Long, k1 As Integer, k2 As Integer, k3 As Integer
    ChoSung = Array("r""R""s""e""E""f""a""q""Q""t""T""o""w""W""c""z""x""v""g")
    JoongSung = Array("k""o""i""il""j""p""u""ul""h""hk""ho""hl""y""n""nj""np""nl""b""m""ml""l")
    JongSung = Array("""r""R""rt""s""sw""sg""e""f""fr""fa""fq""ft""fx""fv""fg""a""q""qt""t""T""d""w""c""z""x""v""g")
    For i = 1 To Len(T)
        If Mid(T, i, 1) Like "[가-힣]" Then
            K = AscW(Mid(T, i, 1))
            K = K - &HAC00
            T1 = Int(K / (21 * 28))
            T2 = Int((K Mod 21 * 28/ 28)
            T3 = K Mod 28
            SplitEnglish = SplitEnglish & ChoSung(T1) & JoongSung(T2) & JongSung(T3)
        Else
            SplitEnglish = SplitEnglish + Mid(T, i, 1)
        End If
    Next
End Function

'// 초성, 중성, 종성 Join
Function PlusKorean(inName As StringAs String
    Dim 초성, 중성, 종성
    Dim vr() As String
    Dim worD As String
    Dim i%, j%
    Dim k1%, k2%, k3%
    Dim wkF As WorksheetFunction
    Set wkF = WorksheetFunction
    초성 = Array("ㄱ""ㄲ""ㄴ""ㄷ""ㄸ""ㄹ""ㅁ""ㅂ""ㅃ""ㅅ""ㅆ""ㅇ""ㅈ""ㅉ""ㅊ""ㅋ""ㅌ""ㅍ""ㅎ")
    중성 = Array("ㅏ""ㅐ""ㅑ""ㅒ""ㅓ""ㅔ""ㅕ""ㅖ""ㅗ""ㅘ""ㅙ""ㅚ""ㅛ""ㅜ""ㅝ""ㅞ""ㅟ""ㅠ""ㅡ""ㅢ""ㅣ")
    종성 = Array("""ㄱ""ㄲ""ㄳ""ㄴ""ㄵ""ㄶ""ㄷ""ㄹ""ㄺ""ㄻ""ㄼ""ㄽ""ㄾ""ㄿ""ㅀ""ㅁ""ㅂ""ㅄ""ㅅ""ㅆ""ㅇ""ㅈ""ㅊ""ㅋ""ㅌ""ㅍ""ㅎ")
    For i = 1 To Len(inName)
        worD = Mid(inName, i, 1)
        '초성, 종성 구분(뒤에 오는 자,모의 종류에 따라서 구분)
        If worD Like "[ㄱ-ㅎ]" Then
            '자음 다음에 모음이 오면 초성
            If Mid(inName, i + 11) Like "[ㅏ-ㅣ]" Then
                k1 = wkF.Match(worD, 초성) - 1
            '자음 다음에 자음이 오거나 글자 길이와 같으면 종성
            ElseIf Mid(inName, i + 11) Like "[ㄱ-ㅎ]" Or i = Len(inName) Then
                k3 = wkF.Match(worD, 종성) - 1
                '종성이 끝나면 배열에 값 삽입
                ReDim Preserve vr(j)
                vr(j) = ChrW(-21504 + (28 * 21 * k1) + (28 * k2) + k3)
                j = j + 1
            End If
        '모음은 중성
        ElseIf worD Like "[ㅏ-ㅣ]" Then
            k2 = wkF.Match(worD, 중성) - 1
            '모음의 두칸 뒤가 또 모음이거나 글자의 마지막이면 종성이 없는 것으로 보고 배열에 값 삽입
            If Mid(inName, i + 21) Like "[ㅏ-ㅣ]" Or i = Len(inName) Then
                k3 = 0  '모음으로 끝나는 글자이므로 종성 초기화
                ReDim Preserve vr(j)
                vr(j) = ChrW(-21504 + (28 * 21 * k1) + (28 * k2) + k3)
                j = j + 1
            End If
        End If
    Next i
    PlusKorean = Replace(Join(vr), " """)
End Function




자음,모음 합치기 << 사용중

Private Const HAN_FIRST As Double = 44032#
Public Function HanJoin(ByVal Cho As StringByVal Jung As String, Optional ByVal Jong As String = ""As String
    Dim ChoSeong  As Integer
    Dim JungSeong As Integer
    Dim JongSeong As Integer
    Dim i As Integer
    Dim Ch As Variant, Ju As Variant, Jo As Variant
    Ch = Array("ㄱ""ㄲ""ㄴ""ㄷ""ㄸ""ㄹ""ㅁ""ㅂ""ㅃ""ㅅ""ㅆ""ㅇ""ㅈ""ㅉ""ㅊ""ㅋ""ㅌ""ㅍ""ㅎ")
    Ju = Array("ㅏ""ㅐ""ㅑ""ㅐ""ㅓ""ㅔ""ㅕ""ㅖ""ㅗ""ㅘ""ㅙ""ㅚ""ㅛ""ㅜ""ㅟ""ㅞ""ㅟ""ㅠ""ㅡ""ㅢ""ㅣ")
    Jo = Array("""ㄱ""ㄲ""ㄳ""ㄴ""ㄵ""ㄶ""ㄷ""ㄹ""ㄺ""ㄻ""ㄼ""ㄽ""ㄾ""ㄿ""ㅀ""ㅁ""ㅂ""ㅄ""ㅅ""ㅆ""ㅇ""ㅈ""ㅊ""ㅋ""ㅌ""ㅍ""ㅎ")
    ChoSeong = -1
    For i = 0 To 18
        If Cho = Ch(i) Then ChoSeong = i: Exit For
    Next i
    If ChoSeong < 0 Then Exit Function
    JungSeong = -1
    For i = 0 To 20
        If Jung = Ju(i) Then JungSeong = i: Exit For
    Next i
    If JungSeong < 0 Then Exit Function
    JongSeong = -1
    For i = 0 To 27
        If Jong = Jo(i) Then JongSeong = i: Exit For
    Next i
    If JongSeong < 0 Then Exit Function
    HanJoin = ChrW((ChoSeong * 21 + JungSeong) * 28 + JongSeong + HAN_FIRST)
End Function


문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 33819
» 기타 [펌] 한글을 자음 모음으로 나누기 + 합치기(초성,중성,종성) [레벨:30]아별 2022-03-22 2373
64 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 _ 윈도우 도움말 file [레벨:30]아별 2017-04-21 39350
63 기타 [VBA] 컴퓨터 이름 알아내기 등 PC 환경 변수 읽오이기.. Environ [레벨:30]아별 2015-04-08 4399
62 기타 [VBA] 엑셀 파일을 PDF로 저장(EXPORT) 시키기 [1] [레벨:30]아별 2015-01-21 7344
61 기타 [펌] 추가 기능 개발시 리본메뉴에 넣을 MSO Image 쉽게 확인하기 imagefile [레벨:30]아별 2015-01-09 3432
60 기타 엑셀 2013에서 웹 브라우저 컨트롤(ActiveX, web browser)을 시트에 삽입할 수 없는 문제.. imagefile [레벨:30]아별 2014-01-19 7315
59 기타 [ VBA Tip ] 엑셀 VBA로 사진(JPG)의 EXIF 정보(GPS 포함) 불러 들이기.. imagefile [6] [레벨:30]아별 2012-02-27 7889
58 기타 VBA로 인디언식 이름 만들어주는 사용자 정의 함수 만들기.. imagefile [1] [레벨:30]아별 2012-01-11 5604
57 기타 오피스2010 64bit(64비트)를 위한 API Declare 방법 file [2] [레벨:30]아별 2011-10-05 9219
56 기타 [펌] VBA 공부를 시작하시는분들에게 추천하는 강의자료 imagefile [4] [레벨:30]아별 2011-03-21 13698
55 기타 VBA _ 레지스트리 다루기 ( registry control ) imagefile [레벨:30]아별 2011-03-19 8672
54 기타 엑셀에서 소리 내기(재생) _ sound play file [1] [레벨:30]아별 2010-12-13 7390
53 기타 헷갈리기 쉬운 워크시트 함수와 VBA함수 비교표 imagefile [레벨:30]아별 2010-10-05 6636
52 기타 기본 제공 대화 상자 실행하면 초기 값 설정 imagefile [레벨:30]아별 2010-08-25 6328
51 기타 [펌] 엑셀 VBA 총정리 _ Excel 개체 모델 참조 등 image [2] [레벨:30]아별 2010-03-09 15919
50 기타 [링크] VBA로 파일을 다루는 방법에 대한 강좌들을 모아놓은 겁니다. [레벨:30]아별 2010-03-03 9832
49 현재 엑셀 파일의 색상표(Color Chart) 확인용 코드 [레벨:30]아별 2009-12-24 7172
48 [펌] Visual Basic (비쥬얼 베이직) 함수 정리 imagefile [레벨:30]아별 2009-11-27 20068
47 엑셀 사용자 정의 수식(UDF)에 도움말 넣는 방법. [레벨:30]아별 2009-11-11 5778
46 Excel에서 메뉴 및 메뉴 모음을 사용자 지정하는 방법 image [레벨:30]아별 2009-11-04 7329