日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

漢字轉(zhuǎn)拼音的解決方案(轉(zhuǎn)帖) | VBA實(shí)例教程

 gblhp 2015-02-16

除非注明,文章均為 戰(zhàn)戰(zhàn)如瘋 原創(chuàng),轉(zhuǎn)載請(qǐng)保留鏈接: http://www./cat4/559.html,VBA交流群273624828。

之前我分享過(guò)一個(gè)取漢字拼音首字母的函數(shù),利用的是查字庫(kù)的方法,但是最近使用時(shí)發(fā)現(xiàn)字庫(kù)中的錯(cuò)誤太多,導(dǎo)致其實(shí)用性大打折扣,在網(wǎng)上又查到了一種比較好的解決方案來(lái)跟網(wǎng)友分享下。

該方案是Excelhome網(wǎng)友的作品,原帖地址http://club./thread-229924-1-1.html,要求電腦上安裝有微軟拼音,該自定義函數(shù)功能強(qiáng)大,不僅可以用來(lái)取首字母,更可以用來(lái)顯示全部拼音,甚至可以帶聲調(diào)。

請(qǐng)首先確認(rèn)安裝了微軟拼音輸入法,如果出現(xiàn)注音錯(cuò)誤的情況,可嘗試安裝最新版本微軟拼音解決。

[12.01.29]更新
解決看柳絮飄揚(yáng)提出的bug,全部都是非漢字情況不會(huì)再顯示#Value,同時(shí)非中文字符間也不再插入分隔符。

[11.09.29]更新
根據(jù)dul版的分析,加入了運(yùn)行環(huán)境檢查,沒(méi)有運(yùn)行環(huán)境的話會(huì)提示安裝微軟拼音。

[11.09.23]更新
4年來(lái)不斷有人問(wèn)多音字的問(wèn)題,這次更新終于解決了,由于寫了這個(gè)函數(shù)之后我就從來(lái)沒(méi)用到過(guò),遇到些問(wèn)題就放下了,一拖就這么久,要不是不斷有人給我發(fā)消息可能就不會(huì)再有這次的更新了,還要感謝大家的使用和督促,讓各位久等了。
更新后,“重慶重要”能夠正確解析為“chóng qìng zhòng yào” 。
這次重寫了很多代碼,沒(méi)有過(guò)多測(cè)試不知道有沒(méi)有bug,發(fā)現(xiàn)bug的同學(xué)請(qǐng)給我發(fā)消息,謝謝。
代碼在32位Win7 + Office2010和WinXp + office2010測(cè)試通過(guò),64位的系統(tǒng)應(yīng)該會(huì)出錯(cuò),就不要測(cè)試了。以前遇到過(guò)2010下寫的VBA代碼在之前版本運(yùn)行會(huì)報(bào)未找到庫(kù)之類的錯(cuò)誤,代碼 中注意了,但仍可能會(huì)有遺漏,總之,請(qǐng)大家反饋意見(jiàn),讓這個(gè)小函數(shù)更好的為大家服務(wù)。

'***************************************************************************
'*
'* Module:          HzToPy
'* Update:          2011-09-23
'* Author:          tt.t
'*
'* Description:     將中文字符串轉(zhuǎn)換為拼音,就這些。原先這里寫了太多廢話,刪了。
'*
'* Theory:    原理依然是通過(guò)IFELanguage接口實(shí)現(xiàn)。
'*                  唯一需要解釋的是如何解決多音字正確注音的問(wèn)題。
'*                  IFELanguage接口是能夠正確返回很多多音字拼音的,但多音字的讀音只有特定詞匯中
'*                  才能確認(rèn),因此在解析拼音時(shí)候不能把詞拆成單字,否則多音字返回的拼音就很可能不對(duì)。
'*                  之前版本中就是因?yàn)榘言~拆開(kāi)獲取拼音導(dǎo)致多音字拼音錯(cuò)誤。
'*                  這次的更新利用接口返回?cái)?shù)據(jù)中標(biāo)識(shí)每個(gè)拼音長(zhǎng)度的數(shù)組實(shí)現(xiàn)了對(duì)返回拼音
'*                  的按字拆分,無(wú)需再把詞拆成字獲取單個(gè)字的拼音,從而解決了多音字問(wèn)題。
'*                  需要說(shuō)明的是,VB_MORRSLT結(jié)構(gòu)就是MS文檔中的MORRSLT結(jié)構(gòu),但是VBA自定義結(jié)構(gòu)
'*                  無(wú)法實(shí)現(xiàn)不按4字節(jié)對(duì)齊,使得不得不修改MORRSLT的定義方式,能這樣修改只能說(shuō)運(yùn)氣不錯(cuò),
'*                  因?yàn)楸恍薷牡牟糠謩偤毛@取拼音用不到。
'*
'* Histroy:
'*                  2011-09-23
'*                  ● 重寫主要代碼,支持多音字,提高了運(yùn)行效率。
'*                  ● 取拼音首字時(shí),ao, ai, ei, ou, er作為首字而不是原來(lái)的第一個(gè)字母。
'*                  ● 為函數(shù)增加了注音方式選擇,hàn可以顯示為han或han4。
'*                  ● 函數(shù)的使用與之前版本兼容,將模塊中函數(shù)代碼和HZ2PY類代碼覆蓋之前版本即可實(shí)現(xiàn)升級(jí),無(wú)需修改文檔中的公式。
'*                  2011-04-07
'*                  ● 更正CoTaskMemFree傳遞參數(shù)錯(cuò)誤,消除了Win7等環(huán)境下崩潰。
'*                  2007-04-03
'*                  ● 更正redim時(shí)vba數(shù)組默認(rèn)起始值錯(cuò)誤。
'*                  2007-04-02
'*                  ● 最初版本,實(shí)現(xiàn)了由漢字獲取拼音。
'*
'***************************************************************************

漢字轉(zhuǎn)拼音舉例:重慶重要1234,澳門

顯示用空格分開(kāi)的拼音
公式: =HzToPy($b$14," ")
結(jié)果: hàn zì zhuǎn pīn yīn jǔ lì : chóng qìng zhòng yào 1 2 3 4 , ào mén
顯示用-分開(kāi)的拼音,同時(shí)不顯示注音符號(hào)
公式: =HzToPy($b$14,"-",false)
結(jié)果: han-zi-zhuan-pin-yin-ju-li-:-chong-qing-zhong-yao-1-2-3-4-,-ao-men
顯示用空格分開(kāi)的拼音,不顯示注音符號(hào),同時(shí)僅顯示拼音的首字,并大寫
公式: =HzToPy($b$14, " ", false,true,false)
結(jié)果: H Z ZH P Y J L : CH Q ZH Y 1 2 3 4 , AO M
顯示用空格分開(kāi)的拼音,不顯示注音符號(hào),同時(shí)僅顯示拼音的首字母,并大寫
公式: =HzToPy($b$14 ," ", false,true, true)
結(jié)果: H Z Z P Y J L : C Q Z Y 1 2 3 4 , A M

附件下載地址:http://pan.baidu.com/s/1hqswD6W。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多