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関連

    Faviconをダウンロードするマクロ

    WebサイトからFaviconを抜き出すAPIがあったので早速使ってみ…

  2. Office関連

    [Word VBA]引数の型がVariantになっているのはなぜ?

    インストラクターのネタ帳でお馴染みの伊藤さんが先日下記の記事をアップさ…

  3. Office関連

    ページ毎に処理を行うWordマクロ

    Wordのマクロで「ページ毎に○○したい」という要望があったので、簡単…

  4. Office関連

    [Outlook VBA]最小化起動時にApplication.Startupイベントが発生しない。…

    Outlook起動時、すべてのアドインが読み込まれた後に発生するApp…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP