VBA:汉字转为拼音

 

 

 
Option Explicit
 
Public Function Getpy(ByVal Chs As String, Optional bList As Boolean = True) As String
'参考来源http://www.51vba.com/show.aspx?id=3984&cid=42
 
Dim ardata(-20319 To -10247) As String
ardata(-20319) = " a"
ardata(-20317) = " ai"
ardata(-20304) = " an"
ardata(-20295) = " ang"
ardata(-20292) = " ao"
ardata(-20283) = " ba"
ardata(-20265) = " bai"
ardata(-20257) = " ban"
ardata(-20242) = " bang"
ardata(-20230) = " bao"
ardata(-20051) = " bei"
ardata(-20036) = " ben"
ardata(-20032) = " beng"
ardata(-20026) = " bi"
ardata(-20002) = " bian"
ardata(-19990) = " biao"
ardata(-19986) = " bie"
ardata(-19982) = " bin"
ardata(-19976) = " bing"
ardata(-19805) = " bo"
ardata(-19784) = " bu"
ardata(-19775) = " ca"
ardata(-19774) = " cai"
ardata(-19763) = " can"
ardata(-19756) = " cang"
ardata(-19751) = " cao"
ardata(-19746) = " ce"
ardata(-19741) = " ceng"
ardata(-19739) = " cha"
ardata(-19728) = " chai"
ardata(-19725) = " chan"
ardata(-19715) = " chang"
ardata(-19540) = " chao"
ardata(-19531) = " che"
ardata(-19525) = " chen"
ardata(-19515) = " cheng"
ardata(-19500) = " chi"
ardata(-19484) = " chong"
ardata(-19479) = " chou"
ardata(-19467) = " chu"
ardata(-19289) = " chuai"
ardata(-19288) = " chuan"
ardata(-19281) = " chuang"
ardata(-19275) = " chui"
ardata(-19270) = " chun"
ardata(-19263) = " chuo"
ardata(-19261) = " ci"
ardata(-19249) = " cong"
ardata(-19243) = " cou"
ardata(-19242) = " cu"
ardata(-19238) = " cuan"
ardata(-19235) = " cui"
ardata(-19227) = " cun"
ardata(-19224) = " cuo"
ardata(-19218) = " da"
ardata(-19212) = " dai"
ardata(-19038) = " dan"
ardata(-19023) = " dang"
ardata(-19018) = " dao"
ardata(-19006) = " de"
ardata(-19003) = " deng"
ardata(-18996) = " di"
ardata(-18977) = " dian"
ardata(-18961) = " diao"
ardata(-18952) = " die"
ardata(-18783) = " ding"
ardata(-18774) = " diu"
ardata(-18773) = " dong"
ardata(-18763) = " dou"
ardata(-18756) = " du"
ardata(-18741) = " duan"
ardata(-18735) = " dui"
ardata(-18731) = " dun"
ardata(-18722) = " duo"
ardata(-18710) = " e"
ardata(-18697) = " en"
ardata(-18696) = " er"
ardata(-18526) = " fa"
ardata(-18518) = " fan"
ardata(-18501) = " fang"
ardata(-18490) = " fei"
ardata(-18478) = " fen"
ardata(-18463) = " feng"
ardata(-18448) = " fo"
ardata(-18447) = " fou"
ardata(-18446) = " fu"
ardata(-18239) = " ga"
ardata(-18237) = " gai"
ardata(-18231) = " gan"
ardata(-18220) = " gang"
ardata(-18211) = " gao"
ardata(-18201) = " ge"
ardata(-18184) = " gei"
ardata(-18183) = " gen"
ardata(-18181) = " geng"
ardata(-18012) = " gong"
ardata(-17997) = " gou"
ardata(-17988) = " gu"
ardata(-17970) = " gua"
ardata(-17964) = " guai"
ardata(-17961) = " guan"
ardata(-17950) = " guang"
ardata(-17947) = " gui"
ardata(-17931) = " gun"
ardata(-17928) = " guo"
ardata(-17922) = " ha"
ardata(-17759) = " hai"
ardata(-17752) = " han"
ardata(-17733) = " hang"
ardata(-17730) = " hao"
ardata(-17721) = " he"
ardata(-17703) = " hei"
ardata(-17701) = " hen"
ardata(-17697) = " heng"
ardata(-17692) = " hong"
ardata(-17683) = " hou"
ardata(-17676) = " hu"
ardata(-17496) = " hua"
ardata(-17487) = " huai"
ardata(-17482) = " huan"
ardata(-17468) = " huang"
ardata(-17454) = " hui"
ardata(-17433) = " hun"
ardata(-17427) = " huo"
ardata(-17417) = " ji"
ardata(-17202) = " jia"
ardata(-17185) = " jian"
ardata(-16983) = " jiang"
ardata(-16970) = " jiao"
ardata(-16942) = " jie"
ardata(-16915) = " jin"
ardata(-16733) = " jing"
ardata(-16708) = " jiong"
ardata(-16706) = " jiu"
ardata(-16689) = " ju"
ardata(-16664) = " juan"
ardata(-16657) = " jue"
ardata(-16647) = " jun"
ardata(-16474) = " ka"
ardata(-16470) = " kai"
ardata(-16465) = " kan"
ardata(-16459) = " kang"
ardata(-16452) = " kao"
ardata(-16448) = " ke"
ardata(-16433) = " ken"
ardata(-16429) = " keng"
ardata(-16427) = " kong"
ardata(-16423) = " kou"
ardata(-16419) = " ku"
ardata(-16412) = " kua"
ardata(-16407) = " kuai"
ardata(-16403) = " kuan"
ardata(-16401) = " kuang"
ardata(-16393) = " kui"
ardata(-16220) = " kun"
ardata(-16216) = " kuo"
ardata(-16212) = " la"
ardata(-16205) = " lai"
ardata(-16202) = " lan"
ardata(-16187) = " lang"
ardata(-16180) = " lao"
ardata(-16171) = " le"
ardata(-16169) = " lei"
ardata(-16158) = " leng"
ardata(-16155) = " li"
ardata(-15959) = " lia"
ardata(-15958) = " lian"
ardata(-15944) = " liang"
ardata(-15933) = " liao"
ardata(-15920) = " lie"
ardata(-15915) = " lin"
ardata(-15903) = " ling"
ardata(-15889) = " liu"
ardata(-15878) = " long"
ardata(-15707) = " lou"
ardata(-15701) = " lu"
ardata(-15681) = " lv"
ardata(-15667) = " luan"
ardata(-15661) = " lue"
ardata(-15659) = " lun"
ardata(-15652) = " luo"
ardata(-15640) = " ma"
ardata(-15631) = " mai"
ardata(-15625) = " man"
ardata(-15454) = " mang"
ardata(-15448) = " mao"
ardata(-15436) = " me"
ardata(-15435) = " mei"
ardata(-15419) = " men"
ardata(-15416) = " meng"
ardata(-15408) = " mi"
ardata(-15394) = " mian"
ardata(-15385) = " miao"
ardata(-15377) = " mie"
ardata(-15375) = " min"
ardata(-15369) = " ming"
ardata(-15363) = " miu"
ardata(-15362) = " mo"
ardata(-15183) = " mou"
ardata(-15180) = " mu"
ardata(-15165) = " na"
ardata(-15158) = " nai"
ardata(-15153) = " nan"
ardata(-15150) = " nang"
ardata(-15149) = " nao"
ardata(-15144) = " ne"
ardata(-15143) = " nei"
ardata(-15141) = " nen"
ardata(-15140) = " neng"
ardata(-15139) = " ni"
ardata(-15128) = " nian"
ardata(-15121) = " niang"
ardata(-15119) = " niao"
ardata(-15117) = " nie"
ardata(-15110) = " nin"
ardata(-15109) = " ning"
ardata(-14941) = " niu"
ardata(-14937) = " nong"
ardata(-14933) = " nu"
ardata(-14930) = " nv"
ardata(-14929) = " nuan"
ardata(-14928) = " nue"
ardata(-14926) = " nuo"
ardata(-14922) = " o"
ardata(-14921) = " ou"
ardata(-14914) = " pa"
ardata(-14908) = " pai"
ardata(-14902) = " pan"
ardata(-14894) = " pang"
ardata(-14889) = " pao"
ardata(-14882) = " pei"
ardata(-14873) = " pen"
ardata(-14871) = " peng"
ardata(-14857) = " pi"
ardata(-14678) = " pian"
ardata(-14674) = " piao"
ardata(-14670) = " pie"
ardata(-14668) = " pin"
ardata(-14663) = " ping"
ardata(-14654) = " po"
ardata(-14645) = " pu"
ardata(-14630) = " qi"
ardata(-14594) = " qia"
ardata(-14429) = " qian"
ardata(-14407) = " qiang"
ardata(-14399) = " qiao"
ardata(-14384) = " qie"
ardata(-14379) = " qin"
ardata(-14368) = " qing"
ardata(-14355) = " qiong"
ardata(-14353) = " qiu"
ardata(-14345) = " qu"
ardata(-14170) = " quan"
ardata(-14159) = " que"
ardata(-14151) = " qun"
ardata(-14149) = " ran"
ardata(-14145) = " rang"
ardata(-14140) = " rao"
ardata(-14137) = " re"
ardata(-14135) = " ren"
ardata(-14125) = " reng"
ardata(-14123) = " ri"
ardata(-14122) = " rong"
ardata(-14112) = " rou"
ardata(-14109) = " ru"
ardata(-14099) = " ruan"
ardata(-14097) = " rui"
ardata(-14094) = " run"
ardata(-14092) = " ruo"
ardata(-14090) = " sa"
ardata(-14087) = " sai"
ardata(-14083) = " san"
ardata(-13917) = " sang"
ardata(-13914) = " sao"
ardata(-13910) = " se"
ardata(-13907) = " sen"
ardata(-13906) = " seng"
ardata(-13905) = " sha"
ardata(-13896) = " shai"
ardata(-13894) = " shan"
ardata(-13878) = " shang"
ardata(-13870) = " shao"
ardata(-13859) = " she"
ardata(-13847) = " shen"
ardata(-13831) = " sheng"
ardata(-13658) = " shi"
ardata(-13611) = " shou"
ardata(-13601) = " shu"
ardata(-13406) = " shua"
ardata(-13404) = " shuai"
ardata(-13400) = " shuan"
ardata(-13398) = " shuang"
ardata(-13395) = " shui"
ardata(-13391) = " shun"
ardata(-13387) = " shuo"
ardata(-13383) = " si"
ardata(-13367) = " song"
ardata(-13359) = " sou"
ardata(-13356) = " su"
ardata(-13343) = " suan"
ardata(-13340) = " sui"
ardata(-13329) = " sun"
ardata(-13326) = " suo"
ardata(-13318) = " ta"
ardata(-13147) = " tai"
ardata(-13138) = " tan"
ardata(-13120) = " tang"
ardata(-13107) = " tao"
ardata(-13096) = " te"
ardata(-13095) = " teng"
ardata(-13091) = " ti"
ardata(-13076) = " tian"
ardata(-13068) = " tiao"
ardata(-13063) = " tie"
ardata(-13060) = " ting"
ardata(-12888) = " tong"
ardata(-12875) = " tou"
ardata(-12871) = " tu"
ardata(-12860) = " tuan"
ardata(-12858) = " tui"
ardata(-12852) = " tun"
ardata(-12849) = " tuo"
ardata(-12838) = " wa"
ardata(-12831) = " wai"
ardata(-12829) = " wan"
ardata(-12812) = " wang"
ardata(-12802) = " wei"
ardata(-12607) = " wen"
ardata(-12597) = " weng"
ardata(-12594) = " wo"
ardata(-12585) = " wu"
ardata(-12556) = " xi"
ardata(-12359) = " xia"
ardata(-12346) = " xian"
ardata(-12320) = " xiang"
ardata(-12300) = " xiao"
ardata(-12120) = " xie"
ardata(-12099) = " xin"
ardata(-12089) = " xing"
ardata(-12074) = " xiong"
ardata(-12067) = " xiu"
ardata(-12058) = " xu"
ardata(-12039) = " xuan"
ardata(-11867) = " xue"
ardata(-11861) = " xun"
ardata(-11847) = " ya"
ardata(-11831) = " yan"
ardata(-11798) = " yang"
ardata(-11781) = " yao"
ardata(-11604) = " ye"
ardata(-11589) = " yi"
ardata(-11536) = " yin"
ardata(-11358) = " ying"
ardata(-11340) = " yo"
ardata(-11339) = " yong"
ardata(-11324) = " you"
ardata(-11303) = " yu"
ardata(-11097) = " yuan"
ardata(-11077) = " yue"
ardata(-11067) = " yun"
ardata(-11055) = " za"
ardata(-11052) = " zai"
ardata(-11045) = " zan"
ardata(-11041) = " zang"
ardata(-11038) = " zao"
ardata(-11024) = " ze"
ardata(-11020) = " zei"
ardata(-11019) = " zen"
ardata(-11018) = " zeng"
ardata(-11014) = " zha"
ardata(-10838) = " zhai"
ardata(-10832) = " zhan"
ardata(-10815) = " zhang"
ardata(-10800) = " zhao"
ardata(-10790) = " zhe"
ardata(-10780) = " zhen"
ardata(-10764) = " zheng"
ardata(-10587) = " zhi"
ardata(-10544) = " zhong"
ardata(-10533) = " zhou"
ardata(-10519) = " zhu"
ardata(-10331) = " zhua"
ardata(-10329) = " zhuai"
ardata(-10328) = " zhuan"
ardata(-10322) = " zhuang"
ardata(-10315) = " zhui"
ardata(-10309) = " zhun"
ardata(-10307) = " zhuo"
ardata(-10296) = " zi"
ardata(-10281) = " zong"
ardata(-10274) = " zou"
ardata(-10270) = " zu"
ardata(-10262) = " zuan"
ardata(-10260) = " zui"
ardata(-10256) = " zun"
ardata(-10254) = " zuo"
 
Dim stmp As String
Dim i As Integer
Dim ii As Integer
 
For i = 1 To IIf(bList, Len(Chs), 1)
stmp = Mid(Chs, i, 1)
If Asc(stmp) > -10247 Or Asc(stmp) < -20319 Then
Getpy = Getpy & stmp
Else
For ii = Asc(stmp) To -20319 Step -1
If Len(ardata(ii)) Then
Getpy = Getpy & ardata(ii)
Exit For
End If
Next
End If
Next
Getpy = Trim(StrConv(Getpy, vbProperCase))
End Function