Office アドイン

[Office用アプリ]作業ウィンドウアプリからシームレスに「スペースアルク」を利用する。

※ この情報はOffice 2013 カスタマー プレビュー版を元にしています。製品版では変更になる可能性がありますのでご注意ください。

今回はJavaScript API for Officeを使って、作業ウィンドウアプリからシームレスに「スペースアルク」による辞書検索を行う方法を紹介します。
アプリの設定や登録方法についてはここでは説明しませんので、JavaScriptでExcel 2013用作業ウィンドウのアプリを作成する。(2)JavaScriptでExcel 2013用作業ウィンドウのアプリを作成する。(3)をご参照ください。

・html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=Edge">
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
        <script src="https://az88874.vo.msecnd.net/api/1.0/office.js"></script>
        <script>
            Office.initialize = function (reason) {
                $(document).ready(function () {
                    Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, document_SelectionChange);
                });
            }
            function document_SelectionChange(eventArgs) {
                if ($("#action").attr("checked")) {
                    eventArgs.document.getSelectedDataAsync(Office.CoercionType.Text, function(asyncResult) {
                        if (asyncResult.status != Office.AsyncResultStatus.Failed) {
                            var s = asyncResult.value;
                            if (s) {$("#ifr").attr("src", "http://eow.alc.co.jp/search?q=" + encodeURIComponent(s));}
                        }
                    });
                }
            }
        </script>
        <style>
            html,body {
                margin:0;
                padding:0;
                overflow:hidden;
                height:100%;
                font-family:Arial,sans-serif;
                font-size:0.9em;
            }
            iframe {
                /* width:100%; */
                width:600px;
                height:100%;
                border:none;
            }
        </style>
    </head>
    <body>
        <input id="action" type="checkbox" title="チェックされている場合のみ検索が行われます。">動作
        <iframe id="ifr" src=""></iframe>
    </body>
</html>

上記コードを設定したアプリを挿入すると、

・選択範囲を変更した際にSelectionChangedイベントが発生。
・getSelectedDataAsyncメソッドによってOfficeドキュメント上の選択文字列を取得。
・取得した文字列を元にiframe上でスペースアルク検索。

といった動作が行えるようになります。
(ただし、選択範囲が変更される度に検索が行われるのは負荷が高いため、「動作」チェックボックスにチェックが入っている場合のみ検索を行うようにしています。)

上記のように、JavaScript API for Officeを利用すると、OfficeドキュメントとWebページの連携がシームレスに行えるようになり、Officeドキュメントの文字列をコピー → インターネットブラウザーを立ち上げ検索ページを開く → コピーした文字列を貼り付けて検索実施、といった面倒な手順を踏む必要がなくなります。

上記コードでは記事のタイトル通り「スペースアルク」との連携を行っていますが、iframeで埋め込むURLを変更すれば、もちろんスペースアルク以外のWebページとも連携することができます。

ロジック自体は非常に簡単なものですので、興味がある方は一度試してみてはいかがでしょうか?

[Office用アプリ]RSS表示アプリを作成する。前のページ

Word 2013では右クリックからBing検索できるようになりました。次のページ

関連記事

  1. Office関連

    [Excel Services ECMAScript]ループによる入力と一括入力の処理時間について

    埋め込んだExcelワークブックのセルに対して、ループで1セルずつ入力…

  2. Office アドイン

    Office 用アプリはソースコードが丸見え!?

    サーバーサイドの処理はともかくとして、Officeドキュメントにアクセ…

  3. Office関連

    【2018年9月版】Microsoft Office関連の公式リンクまとめ

    Ignite 2018やOffice 2019のリリースがあり、Off…

  4. Office関連

    Outlookの予定本文の一部を文字装飾するVBAマクロ

    Outlookの予定本文の一部をマクロで太字にしたい」との質問がありま…

  5. Office関連

    ビジネスITアカデミーの無料VBAセミナーに行ってきました。

    Excel MVPの伊藤さんやWord MVPの新田さんのブログ記事で…

  6. Office関連

    PDFを分割するVBAマクロ

    「VBA PDF 分割」といったキーワード検索でのアクセスがありました…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP