Yahoo!のテキスト解析Web API(ルビ振り)を使用して、漢字かな交じり文をひらがなにするマクロです。
下記マクロはYahoo!のアプリケーションIDが必須になりますので、「アプリケーションIDとは」「アプリケーションIDを登録する」を参考に、IDを事前に取得してください(取得後コード内の”ID“の値を変更)。
なお、APIの制限で一日50,000件を超えると処理できなくなってしまいますので、その点はご注意ください。
Option Explicit Public Sub Sample() MsgBox GetFuriganaYahooApi(Selection.Text) End Sub Private Function GetFuriganaYahooApi(ByVal sentence As String, Optional ByVal grade As Long = 0) '漢字かな交じり文をひらがなにするマクロ Dim url As String Dim d As Object Dim sel As Object Dim n As Object Dim ret As String 'アプリケーションID '詳細は[http://help.yahoo.co.jp/help/jp/developer/developer-06.html]参照 Const ID As String = "(アプリケーションID)" ret = "": Set d = Nothing '初期化 url = "http://jlp.yahooapis.jp/FuriganaService/V1/furigana" url = url & "?appid=" & ID & "&sentence=" & EncodeURL(sentence) Select Case grade Case 1 To 8 url = url & "&grade=" & CStr(grade) End Select On Error Resume Next With CreateObject("MSXML2.XMLHTTP") .Open "GET", url, False .Send Set d = .responseXML End With On Error GoTo 0 If Not d Is Nothing Then If d.SelectNodes("/ResultSet/Result/WordList/Word").Length > 0 Then For Each sel In d.SelectNodes("/ResultSet/Result/WordList/Word") Set n = sel.SelectSingleNode("Furigana") If Not n Is Nothing Then ret = ret & n.Text Set n = Nothing Else ret = ret & sel.SelectSingleNode("Surface").Text End If Next End If End If GetFuriganaYahooApi = ret End Function Private Function EncodeURL(ByVal sWord As String) As String With CreateObject("ScriptControl") .Language = "JScript" EncodeURL = .CodeObject.encodeURIComponent(sWord) End With End Function
精度は正直微妙なところがありますが、文章を子ども向けに変換する際には役立つかもしれません。
この記事へのコメントはありません。