Excel

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

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. Excel

    外部からOutlookのマクロを実行するマクロ

    外部からOutlookのマクロを実行するマクロ今回は外部からO…

  2. Office関連

    スライドショーをループ再生設定するPowerPointマクロ

    PowerPointでスライドショーを作成するとき、投影した後流しっぱ…

  3. Excel

    ファイルをブックに埋め込むExcelマクロ

    大分前に書いた回答用のコードが出てきたので、記事として残しておきます。…

  4. Office関連

    Gmail APIを使ってメール送信するVBAマクロ(3)

    前回、前々回とGmail APIを扱ってきましたが、今回は前々回の記事…

  5. アイコン一覧

    Office 365アイコン(imageMso)一覧(I)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  6. Office関連

    Office365APIEditorでMicrosoft Graph APIを手軽に呼び出し!

    下記Tech Communityの記事で、Microsoftのエンジニ…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP