
以前、「EmEditor小技・範囲指定でネット検索」の記事で、EmEditorから直接ネット検索出来る方法を書いたけど、これだと検索サイトごとに外部ツールを増やさないといけない。
そこで、外部ツールは一つで、後はマクロの変更で可能な形を見つけたので掲載。
方法は、まず前回と同じ方法、メニュー「ツール」→「外部ツール」→「外部ツールの設定」→「新規作成」で、次の項目を追加。
タイトル: 「ネット検索」など分かりやすいものを
コマンド: $(CurText)





作成した外部ツールを一番上にすれば、外部ツールNo.は0なので扱いやすい。
そして次のマクロ2つを作成。
ネット検索定義用マクロ
( "NetSearch.jsee"のファイル名で保存 )
// ネット検索定義
function NetSearch(ComTop , ComEnd) {
if ( document.selection.IsEmpty ) // 範囲指定無ければ
document.selection.SelectLine();// 1行選択
SWord = document.selection.Text; // 範囲を記憶
editor.ExecuteCommandByID(4096); // 新規作成
document.selection.Text =
ComTop + SWord + ComEnd; // 文字貼付
document.selection.
StartOfDocument(true); // 先頭へ範囲指定
editor.ExecuteCommandByID
( 8192 + 0 ); // 外部ツール実行
editor.ExecuteCommandByID(4120); // 文書破棄
}
外部ツールと"NetSearch.jsee"を1つ作っておけば、検索サイトを増やす場合は実行用マクロだけ作ればいい。実行用マクロ
( "Google.jsee"など好きなファイル名で保存 )
#tooltip = "Google検索"
#include "NetSearch.jsee"
// Google検索
NetSearch("http://google.com/search?q=" , "");
外部ツールの設定として、コマンド"$(CurText)"と、範囲選択した文字だけを実行するようにしているので、そこにURLをそのまま送ればいい。
そのURLを取得する方法として、
範囲選択文字を取得 → 編集用に新規文書作成 → 取得文字にURLを追加して書込
→ それを範囲指定 → 外部ツールに送る → 文書を破棄
と、文書を作成してそこに書き込み、URL取得が終わればそれだけ消すという流れ。
実行用マクロから呼び出す定義関数は、
NetSearch("【URL: 検索ワードの前】" , "【URL: 検索ワードの後】");
という書式。
検索URLについて、他のサイトならこんな感じ。
Yahoo辞書
#tooltip = "Yahoo辞書"
#include "NetSearch.jsee"
// Yahoo辞書
NetSearch("http://dic.search.yahoo.co.jp/search?ei=UTF-8&p="
, "");
Google翻訳
#tooltip = "Google翻訳"
#include "NetSearch.jsee"
// Google翻訳
NetSearch("http://translate.google.com/?text="
, "&hl=ja&langpair=auto|ja&tbb=1&ie=");
ちなみにこれ、URLをそのまま送っているだけなので、実際は検索に限らずURLなら何でも実行可能。
色々と必要なサイトを登録すると便利だと思う。
タグ:EmEditor