ONLYOFFICEマクロによる単語定義の生成と挿入する方法

2023年08月30日著者:Denis

文書に明確な定義を加えることで、文書全体の品質を大幅に向上させることができます。ONLYOFFICEのマクロを使えば、これらの作業を自動化することが簡単になります。このブログポストでは、外部APIから単語定義を取得し、文書にシームレスに挿入するマクロの作成方法をご紹介します。

Generate and insert word definitions with ONLYOFFICE macro

APIへのアクセス

API Ninjasは強力なAPIサービスで、辞書や言語翻訳などの機能を使ってアプリケーションを強化するための様々なAPIを開発者向けに無料で提供しています。このチュートリアルでは、単語の定義を提供する辞書APIを使用します。API Ninjasのサービスにアクセスするには、APIキーにサインアップする必要があります。

マクロの構築

私たちのゴールは、選択した単語の値を取得し、その定義を外部APIから取得するマクロを作成することです。そして、その定義をドキュメントに挿入します。

まず、必要な変数を初期化します:

const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const word = oRange.GetText();

ここで、oDocument変数は現在のドキュメントを表し、oRange変数は選択されたテキスト範囲を保持し、word変数は選択された単語の値を格納します。

次に、AJAXを使って辞書APIにリクエストを出す。「your-api-key」を実際のAPIキーに置き換えてください:

    success: function(result) {
        console.log(result);
        const text = result.definition;
        // Continue to the next step...
    },
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
    }
});

ここでは、選択した単語とAPIキーを指定して、APIエンドポイントにGETリクエストを送信します。成功コールバックでは、そこから定義プロパティを抽出します。

定義が取得できたら、それをドキュメントに挿入します:

 success: function(result) {
        console.log(result);
    const text = result.definition; 
    const oParagraph = Api.CreateParagraph();
    oParagraph.AddText(text);
    oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });
    }

このセクションでは、Api.CreateParagraph()を使用して新しい段落を作成し、oParagraph.AddText(text)を使用して取得したテキストを段落に追加し、最後にoDocument.InsertContent()を使用して段落をoDocumentに挿入します。

マクロ全体のコードは以下のとおりです:

(function()
{
const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const word = oRange.GetText();
$.ajax({
    method: 'GET',
    url: 'https://api.api-ninjas.com/v1/dictionary?word=' + word,
    headers: { 'X-Api-Key': 'your-api-key'},
    contentType: 'application/json',
    success: function(result) {
        console.log(result);
    const text = result.definition; 
    const oParagraph = Api.CreateParagraph();
    oParagraph.AddText(text);
    oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });
    },
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
    }
});
})();

では、マクロを実行し、その動きを見てみましょう!

私たちは、このマクロがあなたのツールキットへの貴重な追加となることを心から願っています。ONLYOFFICEマクロを取り入れることで、生産性が向上し、効率的で自動化されたソリューションを提供することができます。

マクロ作成に没頭しながら、ONLYOFFICE APIが提供する機会をお見逃しなく。ご質問や独創的なアイディアがありましたら、コメントや私たちにご連絡ください。私たちはあなたの意見を歓迎し、一緒に働く可能性を楽しみにしています!