Office関連

漢字かな交じり文をひらがなにするマクロ

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

精度は正直微妙なところがありますが、文章を子ども向けに変換する際には役立つかもしれません。

OneNoteの指定したセクションをページごとに指定した形式で出力するマクロ前のページ

文書内の単語を単語ごとにカウントするWordマクロ次のページ

関連記事

  1. Office関連

    オフィス祭り 2018 in 東京に参加しました。

    先日書いた下記記事の通り、9月15日(土)に品川にある日本マイクロソフ…

  2. Office関連

    「Excel VBAでIEを思いのままに操作できるプログラミング術」の見本誌をいただきました。

    「VBAアクションゲーム?Excel(エクセル)で動かそう!」で有名な…

  3. Office関連

    [リボン・カスタマイズ]グループの表示・非表示をトグルボタンで切り替える。

    数年前に書いた記事に下記コメントをいただきました。Excelに…

  4. アイコン一覧

    Office 2013 アイコン一覧(B)

    ・Office 2013 アイコン一覧 NUM…

  5. Office関連

    goo.glで短縮URLを取得するVBAマクロ

    何年か前にHPで「goo.glで短縮URLを取得する」マクロを紹介しま…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP