Excel 테이블에서 한자의 첫 글자를 추출하는 기능

사용 방법:
도구-宏-visualbasic 편집기, 새 모듈을 만들고 다음 코드를 모듈에 복사합니다.그리고 pinyin (mystring) 을 작업장 함수로 사용할 수 있습니다.
예: a1 칸에 문자 [아중]이 있고 b1 칸에 함수 = pinyin(a1)b1을 입력하면 [AZ] 코드가 출력됩니다.

  
  
  
  
  1. Public Function pinyin(mystr As StringAs Variant ' , : 。  
  2.     On Error Resume Next 
  3.     mystr = StrConv(mystr, vbNarrow)  
  4.       
  5.     Dim returnStr As String 
  6.       
  7.     Dim i As Integer 
  8.     Dim curWord As String 
  9.     For i = 1 To Len(mystr)  
  10.             
  11.           curWord = Mid(mystr, i, 1)  
  12.               
  13.           If Asc(curWord) <> 0 And Err.Number <> 1004 Then 
  14.             returnStr = returnStr & getFirstLetterOfCnWord(curWord)  
  15.           End If 
  16.     Next i  
  17.       
  18.     pinyin = returnStr  
  19.      
  20.        
  21. End Function 
  22.    
  23.  Public Function isCNWord(mystr As StringAs Boolean 
  24.     Dim flag As Boolean 
  25.     flag = False 
  26.     If Len(mystr) <> LenB(mystr) Then 
  27.         flag = True 
  28.     End If 
  29.     isCNWord = flag  
  30.  End Function 
  31.  
  32.  
  33.  
  34. Public Function getFirstLetterOfCnWord(mystr As StringAs String 
  35.     If Asc(mystr) < 0 Then 
  36.         If Asc(Left$(mystr, 1)) < Asc(" "Then 
  37.             getFirstLetterOfCnWord = "0" 
  38.             Exit Function 
  39.         End If 
  40.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  41.             getFirstLetterOfCnWord = "A" 
  42.             Exit Function 
  43.         End If 
  44.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  45.             getFirstLetterOfCnWord = "B" 
  46.             Exit Function 
  47.         End If 
  48.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  49.             getFirstLetterOfCnWord = "C" 
  50.             Exit Function 
  51.         End If 
  52.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  53.             getFirstLetterOfCnWord = "D" 
  54.             Exit Function 
  55.         End If 
  56.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  57.             getFirstLetterOfCnWord = "E" 
  58.             Exit Function 
  59.         End If 
  60.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  61.             getFirstLetterOfCnWord = "F" 
  62.             Exit Function 
  63.         End If 
  64.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  65.             getFirstLetterOfCnWord = "G" 
  66.             Exit Function 
  67.         End If 
  68.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  69.             getFirstLetterOfCnWord = "H" 
  70.             Exit Function 
  71.         End If 
  72.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  73.             getFirstLetterOfCnWord = "J" 
  74.             Exit Function 
  75.         End If 
  76.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  77.             getFirstLetterOfCnWord = "K" 
  78.             Exit Function 
  79.         End If 
  80.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  81.             getFirstLetterOfCnWord = "L" 
  82.             Exit Function 
  83.         End If 
  84.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  85.             getFirstLetterOfCnWord = "M" 
  86.             Exit Function 
  87.         End If 
  88.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  89.             getFirstLetterOfCnWord = "N" 
  90.             Exit Function 
  91.         End If 
  92.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  93.             getFirstLetterOfCnWord = "O" 
  94.             Exit Function 
  95.         End If 
  96.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  97.             getFirstLetterOfCnWord = "P" 
  98.             Exit Function 
  99.         End If 
  100.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  101.             getFirstLetterOfCnWord = "Q" 
  102.             Exit Function 
  103.         End If 
  104.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  105.             getFirstLetterOfCnWord = "R" 
  106.             Exit Function 
  107.         End If 
  108.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  109.             getFirstLetterOfCnWord = "S" 
  110.             Exit Function 
  111.         End If 
  112.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  113.             getFirstLetterOfCnWord = "T" 
  114.             Exit Function 
  115.         End If 
  116.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  117.             getFirstLetterOfCnWord = "W" 
  118.             Exit Function 
  119.         End If 
  120.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  121.             getFirstLetterOfCnWord = "X" 
  122.             Exit Function 
  123.         End If 
  124.         If Asc(Left$(mystr, 1)) >= Asc(" "And Asc(Left$(mystr, 1)) < Asc(" "Then 
  125.             getFirstLetterOfCnWord = "Y" 
  126.             Exit Function 
  127.         End If 
  128.         If Asc(Left$(mystr, 1)) >= Asc(" "Then 
  129.             getFirstLetterOfCnWord = "Z" 
  130.             Exit Function 
  131.         End If 
  132.     Else 
  133.         If UCase$(mystr) <= "Z" And UCase$(mystr) >= "A" Then 
  134.             getFirstLetterOfCnWord = UCase$(Left$(mystr, 1))  
  135.         Else 
  136.             getFirstLetterOfCnWord = mystr  
  137.         End If 
  138.     End If 
  139. End Function 

좋은 웹페이지 즐겨찾기