※ この情報は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ページとも連携することができます。
ロジック自体は非常に簡単なものですので、興味がある方は一度試してみてはいかがでしょうか?
この記事へのコメントはありません。