Excel Word PowerPoint Lotus WPS OpenOffice
返回首页
当前位置: 首页 > 办公 > Excel >

Excel汉字转拼音的方法

时间:2010-07-20 22:50来源:虫虫技术在线收集整理 作者:虫虫编辑 点击:
第一步:打开EXCEL, 第二步:在visual basic编辑器中,新建一模块,代码如下, Public Function HzToPy(Hz As String, Optional Sep As String = , Optional ShowNotation As Boolean = True, Optional ShowInitialOnly As Bool

第一步:打开EXCEL,
第二步:在visual basic编辑器中,新建一模块,代码如下,

Public Function HzToPy(Hz As String, Optional Sep As String = "", Optional ShowNotation As Boolean = True, Optional ShowInitialOnly As Boolean, Optional ShowOnlyOneChar As Boolean = True) As String
     Dim hp As HZ2PY
    
     Set hp = New HZ2PY           '创建类
     If Sep <> "" Then
         hp.Seperator = Sep
         hp.UseSeperator = True
     End If
     hp.InitialOnly = ShowInitialOnly
     hp.OnlyOneChar = ShowOnlyOneChar
     HzToPy = hp.GetPinYin(Hz)
     If Not ShowNotation Then HzToPy = hp.AdjustPhoneticNotation(HzToPy, pnNoNotation)
     Set hp = Nothing             '释放类
    
End Function

然后新建一类模块,名称为“HZ2PY”代码如下
Option Explicit
Public Enum PhoneticNotation
     pnDefault = 0
     pnNoNotation = 1
End Enum
Private Type GUID
     Data1 As Long
     Data2 As Integer
     Data3 As Integer
     Data4(0 To 7) As Byte
End Type
Private Type TinyMORRSLT
     dwSize As Long
     pwchOutput As Long
     cchOutput As Integer
End Type
Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" _
         (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function CoCreateInstance Lib "ole32" ( _
     rclsid As GUID, ByVal pUnkOuter As Long, _
     ByVal dwClsContext As Long, riid As GUID, _
     ByRef ppv As Long) As Long
Private Declare Function DispCallFunc Lib "oleaut32" _
         (ByVal pvInstance As Long, ByVal oVft As Long, _
         ByVal cc As Long, ByVal vtReturn As Integer, _
         ByVal cActuals As Long, prgvt As Integer, _
         prgpvarg As Long, pvargResult As Variant) As Long
Private Declare Sub CoTaskMemFree Lib "ole32" (pv As Long)
Dim MSIME_GUID As GUID           'MSIME's GUID
Dim IFELanguage_GUID As GUID     'IFELanguage's GUID
Dim IFELanguage As Long          'Pointer to IFELanguage interface
Dim sNotation1
Dim sNotation2
Dim dNotation
Dim pvSeperator As String
Dim pvUseSeperator As Boolean
Dim pvInitialOnly As Boolean
Dim pvOnlyOneChar As Boolean
Private Sub InitalArray()
     sNotation1 = Array("ā", "á", "ǎ", "à", "ē", "é", "ě", "è", "ī", "í", "ǐ", "ì", "ō", "ó", "ǒ", _
                       "ò", "ū", "ú", "ǔ", "ù", "ǖ", "ǘ", "ǚ", "ǜ", "ü", " ", "ń", "ň", " ", "ɡ")
                      
     sNotation2 = Array("a1", "a2", "a3", "a4", "e1", "e2", "e3", "e4", "i1", "i2", "i3", "i4", "o1", "o2", "o3", _
                       "o4", "u1", "u2", "u3", "u4", "v1", "v2", "v3", "v4", "v", "m2", "n2", "n4", "n2", "g") (责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
推荐内容