読者です 読者をやめる 読者になる 読者になる

選択文字列をWebで和英/英和訳 #2

vbscript

選択文字列をWebで和英/英和訳 - komamitsu.log
以前、そんな秀丸マクロを書いたのだけど、どうやら作業中は翻訳用の専用ソフトを使っているらしく、そこから直接検索にいけるとかなり楽なようだ。

あんまり良案が思い浮かばないが、手軽さ優先で、こんなのはどうだろう。

  1. VBScriptクリップボードから検索文字列を取得しURLを組み立て、Firefoxを起動するようなスクリプトを書く。
  2. Windowsのショートカットを作成する。
  3. ショートカットのプロパティでショートカットを登録する。

1は以下の理由より。

  • 新規で処理系を入れたくなかったので、既に入っているであろうVBScriptを採用。
  • なんとなく選択文字列をとる方法がよく分からん。クリップボード渡しは出来そうな気がする。

上手くいくと、Ctrl + C -> Ctrl + Alt + C の 2ストロークで検索できるのでは(まぁ理想は一発なんだけど)?
ということで、調べてみて実験してみたところ、VBScriptはこんな感じになった。

Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate("about:blank")
Do Until ie.ReadyState = 4
  WScript.Sleep 2
Loop
keyword = ie.Document.ParentWindow.ClipboardData.GetData("Text")
Set ie = Nothing

url = "http://eow.alc.co.jp/" & keyword & "/UTF-8/?ref=sa"
Set sh = CreateObject("WScript.Shell")
sh.exec "C:\Program Files\Mozilla Firefox\firefox.exe " & url
Set sh = Nothing

正直、VBScriptの仕様はほとんど理解していない… 何というか、モチベーションがあがらないとか、あまり時間をかけたくないとか、いろいろあって。

モチベーションが下がったポイントとしては、IEのオブジェクト経由でないとクリップボードにアクセスできない仕様がショックだったのだと思います。

で、上記のスクリプトを適当なところにおいて、適当にショートカットを作ったら、期待通りに動作しました。これならどのアプリを使っていても大丈夫。