背景:当你输日文汉字的额时候,输出它的读音。

如下图所示

实现的代码如下

Option Explicit

' Replace を まとめて おこなう
Private Function ReplaceA(ByVal s As String, ByVal t1 As String, ByVal t2 As String) As String Dim u1() As String: u1 = Split(t1)
Dim u2() As String: u2 = Split(t2)
Dim i As Integer For i = 0 To UBound(u1)
s = Replace(s, u1(i), u2(i))
Next ReplaceA = s End Function ' カタカナを ローマ字(英語式)に おきかえる
Public Function KatakanaToRoomaziE(ByVal s As String) As String ' 前処理
s = ReplaceA(s, "ッン", "'ン") ' 拗音・特殊音
s = ReplaceA(s, "キャ キュ キョ", "kya kyu kyo")
s = ReplaceA(s, "シャ シュ ショ", "sha shu sho")
s = ReplaceA(s, "チャ チュ チョ", "cha chu cho")
s = ReplaceA(s, "ニャ ニュ ニョ", "nya nyu nyo")
s = ReplaceA(s, "ヒャ ヒュ ヒョ", "hya hyu hyo")
s = ReplaceA(s, "ミャ ミュ ミョ", "mya myu myo")
s = ReplaceA(s, "リャ リュ リョ", "rya ryu ryo")
s = ReplaceA(s, "ギャ ギュ ギョ", "gya gyu gyo")
s = ReplaceA(s, "ジャ ジュ ジョ", "ja ju jo")
s = ReplaceA(s, "ヂャ ヂュ ヂョ", "ja ju jo")
s = ReplaceA(s, "ビャ ビュ ビョ", "bya byu byo")
s = ReplaceA(s, "ピャ ピュ ピョ", "pya pyu pyo") ' 直音
s = ReplaceA(s, "ア イ ウ エ オ", "a i u e o")
s = ReplaceA(s, "カ キ ク ケ コ", "ka ki ku ke ko")
s = ReplaceA(s, "サ シ ス セ ソ", "sa shi su se so")
s = ReplaceA(s, "タ チ ツ テ ト", "ta chi tsu te to")
s = ReplaceA(s, "ナ ニ ヌ ネ ノ", "na ni nu ne no")
s = ReplaceA(s, "ハ ヒ フ ヘ ホ", "ha hi fu he ho")
s = ReplaceA(s, "マ ミ ム メ モ", "ma mi mu me mo")
s = ReplaceA(s, "ヤ ユ ヨ", "ya yu yo")
s = ReplaceA(s, "ラ リ ル レ ロ", "ra ri ru re ro")
s = ReplaceA(s, "ワ ヰ ヱ ヲ", "wa i e o")
s = ReplaceA(s, "ガ ギ グ ゲ ゴ", "ga gi gu ge go")
s = ReplaceA(s, "ザ ジ ズ ゼ ゾ", "za ji zu ze zo")
s = ReplaceA(s, "ダ ヂ ヅ デ ド", "da ji zu de do")
s = ReplaceA(s, "バ ビ ブ ベ ボ", "ba bi bu be bo")
s = ReplaceA(s, "パ ピ プ ペ ポ", "pa pi pu pe po") ' 撥音
s = Replace(s, "ン", "n")
s = ReplaceA(s, "nb nm np", "mb mm mp") ' 促音
s = ReplaceA(s, "ッk ッs ッt ッn ッh ッm ッy ッr ッw", "kk ss tt nn hh mm yy rr ww")
s = ReplaceA(s, "ッg ッz ッd ッb ッp", "gg zz dd bb pp")
s = ReplaceA(s, "ッc ッf ッj", "tc ff jj")
s = Replace(s, "ッ", "'") ' 長音
s = Replace(s, "iー", "ii")
s = Replace(s, "ー", "") KatakanaToRoomaziE = StrConv(StrConv(s, vbNarrow), vbLowerCase) End Function ' EOF
Function GetPhonetic(セル As Range, _
Optional ByVal 変換 As Integer = 8, _
Optional ByVal 全て As Boolean = False)
Dim strPhonetic As String
GetPhonetic = StrConv(Application.GetPhonetic(セル), 変換)
strPhonetic = GetPhonetic
If 全て = True Then
Do Until strPhonetic = ""
strPhonetic = StrConv(Application.GetPhonetic(), 変換)
If strPhonetic <> "" Then
GetPhonetic = GetPhonetic & " ; " & strPhonetic
End If
Loop
End If
End Function Function DelAIUEO(ByVal romaStr As String) As String
Dim delStr As String
delStr = romaStr
delStr = Replace(delStr, "A", "")
delStr = Replace(delStr, "I", "")
delStr = Replace(delStr, "U", "")
delStr = Replace(delStr, "E", "")
delStr = Replace(delStr, "O", "") delStr = Replace(delStr, "a", "")
delStr = Replace(delStr, "i", "")
delStr = Replace(delStr, "u", "")
delStr = Replace(delStr, "e", "")
delStr = Replace(delStr, "o", "") DelAIUEO = delStr
End Function

  

最新文章

  1. bcp 命令实例
  2. Redis学习手册(目录)
  3. Java Keytools 证书转换成Openssl 的PEM 文件或keytools 导出私钥文件
  4. [solr] - 数据库导入
  5. 由tombstone文件解析jni代码过程
  6. 转 web项目中的web.xml元素解析
  7. oracle 循环语句
  8. Dreamweaver_CS6安装与破解,手把手教程
  9. 创建一个spring helloworld
  10. java获取当前操作系统的信息
  11. bochs编译安装
  12. SQL2008安装提示&quot;Microsoft visual studio 2008早期之前的版本&quot;解决(这是我认为最简单有效的方法)
  13. C/C++基本数据类型所占字节数
  14. 浅谈Servlet(二)
  15. 计算机程序的思维逻辑 (75) - 并发容器 - 基于SkipList的Map和Set
  16. 微信开发获取地理位置实例(java,非常详细,附工程源码)
  17. 一、Flask路由介绍
  18. spring 集成 mybatis
  19. python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )
  20. Django-website 程序案例系列-4 ORM数据库操作

热门文章

  1. AST11103 Problem Solving
  2. java项目部署到LIINUX
  3. 上下左右居中 无固定高的div
  4. Java 内部类和Lambda
  5. [Javascript] Check Promise is Promise
  6. A revolutionary architecture for building a distributed graph
  7. 2-STM32+W5500+GPRS(2G)基础篇-(W5500-学习说明)
  8. 如何打开 win 10 内置应用
  9. React_02_ECMAScript6
  10. 【Django】Django项目结构与单元测试