こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WORD2010で英単語をググるマクロは作れますか

WORD2010を使って翻訳作業をしています。環境はwin7です。
まずは英文をすべてWORDに転写してから作業しています。
英単語を選択して、ワンボタンでグーグル検索「(英単語) 訳」という形で検索をしたいのですが、方法はあるでしょうか。例えば、pen という単語を選択したら、「pen 訳」という形でワンボタンで検索したいということです。
・「右クリックでgoogle!」というフリーウェアは入れてみました。たしかに右クリックメニューに「グーグル検索」は追加できたのですが、これだと英単語のみダイレクトに検索されるので、けっきょく、検索ワードに「訳」とか「意味」などと追加しなくてはならず、あまり手間が減っていません(設定の仕方はあるのかもしれませんが、マニュアルを読んでもわかりませんでした。)
・orbweaverという左手用キーボードを持っているので、かなり複雑なマクロでも記憶させることができます。
・高価な電子辞書も持っているのですが、現代語や口語などを訳すときは、やはりグーグルで用例を探すことが欠かせません。

ご存知の方がいらっしゃいましたら、よろしくお願い致します。

投稿日時 - 2016-08-08 12:31:07

QNo.9212520

困ってます

質問者が選んだベストアンサー

> たとえば「Bayes' rule」という文字列を選択した場合、「訳 Bayes'」のみで検索されてしまいます。

Googleで検索する場合のURLには「訳+Bayes'+rule」と「+」でつなぐ必要があるためですね。
空白を「+」に置換するなんかはVBAの得意な分野なので、

Sub yaku3()
 Dim strSel As String ' 選択中の文字列
 Dim strURL As String ' URLの文字列

 ' 選択中の文字列を取得し、両端空白を削除
 strSel = Trim(Selection.Text)
 ' 文字列が空なら終了
 If strSel = "" Then End
 ' 空白を+に置換
 strSel = Replace(strSel, " ", "+")
 strSel = Replace(strSel, " ", "+")
 ' 選択単語をGoogle検索「訳 <単語>」のURLにする
 strURL = "https://www.google.co.jp/search?q=%E8%A8%B3+" & strSel
 ' Chromeを起動し、URLを呼び出し(起動中なら自動的に新規タブで開いてくれる模様)
 Shell ("【chrome.exeのパス】 -url " & strURL)
End Sub

でどうでしょう。

投稿日時 - 2016-08-10 21:57:12

お礼

すごいです。完璧です。翻訳作業がものすごく快適になりました。
自分ではとてもできないことを丁寧に教えていただき、感謝してもしきれません。本当にありがとうございました!

投稿日時 - 2016-08-11 13:35:28

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

> 新規ウィンドウの立ち上げよりは、新しいタブの立ち上げの方が

自分もそう思いました…。

Chromeで試してみると、自分の環境だとChrome君がなんかいい具合にタブで開いてくれるようです。

Sub yaku2()
 Dim strSel As String ' 選択中の文字列
 Dim strURL As String ' URLの文字列

 ' 選択中の文字列を取得
 strSel = Selection.Text
 ' 文字列が空なら終了
 If Trim(strSel) = "" Then End
 ' 選択単語をGoogle検索「訳 <単語>」のURLにする
 strURL = "https://www.google.co.jp/search?q=%E8%A8%B3+" & Selection.Text
 ' Chromeを起動し、URLを呼び出し(起動中なら自動的に新規タブで開いてくれる模様)
 Shell ("【chrome.exeのパス】 -url " & strURL)
End Sub


Shellの【chrome.exeのパス】の部分は、インストールされているchrome.exeの場所を指定してください。
-urlの前の半角空白を忘れずに。

例えば自分だと、
C:\Users\【ユーザー名】\AppData\Local\Google\Chrome\Application\chrome.exe

デスクトップなどにChromeを起動するためのショートカットがあるなら、ショートカットを右クリック-[プロパティ]でショートカットのプロパティを開き、「リンク先」の内容をコピペして下さい。

投稿日時 - 2016-08-10 17:58:28

補足

再度のご回答有り難うございます!この方法も成功しました。ものすごく便利になりました!…が、大変恐縮なのですが、もう一つだけ教えていただけないでしょうか。解答1の方法では問題なかったのですが、この解答5の方法ですと、たとえば「Bayes' rule」という文字列を選択した場合、「訳 Bayes'」のみで検索されてしまいます。これを「訳 Bayes' rule」というふうに、複数単語も対象となるようにすることは可能でしょうか?
もし可能でしたら、ご教示いただけますと幸いです。よろしくお願い致します。

投稿日時 - 2016-08-10 20:02:57

No.3です。
では、こういうのは?

参考:http://news.mynavi.jp/column/windows/327/
※レジストリの編集はあくまでも自己責任でお願いします。
---
1. 管理者権限でレジストリエディターを起動
 1-1. [Win] + [R]キーを押して「ファイル名を指定して実行」を起動
 1-2. テキストボックスに「regedit」と入力して<OK>ボタンをクリック

2. レジストリエディターが起動したら、
「HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\General」キーを開く
 ※参考Webサイト上では「...Office\15.0...」となっていますが、
 質問者さまのOfficeは2010なので、「14.0」を開いてください

3. 文字列値「SearchProviderName」を作成し、データを入力
 3-1. [General] キーを右クリックし、[新規] - [文字列値] を選択
 3-2. 値名を「新しい値 #1」を「SearchProviderName」に変更
 3-3. 文字列値「SearchProviderName」をダブルクリックで開き、データを「Google」に変更
 3-4. [OK] ボタンクリックで閉じる

4. 文字列値「SearchProviderURI」を作成し、データを入力
 4-1. [General] キーを右クリックし、[新規] - [文字列値] を選択
 4-2. 値名を「新しい値 #1」を「SearchProviderURI」に変更
 4-3. 文字列値「SearchProviderURI」をダブルクリックで開き、
  データを「https://translate.google.co.jp/#en/ja/」に変更
 ※「/#en/jp」で英語→日本語を意味する
 4-4.[OK] ボタンクリックで閉じる

5. レジストリエディターを終了
---
ワードを起動し、英単語を検索する文字列上で右クリック、
[Googleで検索]をクリックすると、Google翻訳の画面に飛びます。

お試しください。

投稿日時 - 2016-08-09 11:54:14

お礼

申し訳ありません。No.1の回答者様にご教示いただいた方法で、とりあえず解決したということと、レジストリをいじるのは、私にはちょっと敷居が高いので、今回は見送らせていただきます…
ものすごく丁寧に指導していただいたのに申し訳ありません。試してみてもいいとは思うのですが…
ご回答、ありがとうございました。

投稿日時 - 2016-08-10 15:01:54

単語ごとの検索が必要なのですか?
マクロではないですが、こちらで紹介している方法はいかがでしょうか。
カーソル位置の単語の意味を調べる、という手段も載っています。

https://azby.fmworld.net/support/corner/wordlesson/050/

投稿日時 - 2016-08-09 10:08:31

お礼

デフォルトの翻訳機能は、正直に申しまして、ちょっと能力が低いのです…。
結局、電子辞書やグーグルで調べ直すことになってしまいます。
ご回答、ありがとうございました。

投稿日時 - 2016-08-09 10:40:22

ANo.2

それをやるためには
(1)ワード文書の単語を扱うための、WordVBA(マクロといっている人が多い)の勉強(2)まずはどの検索サイトを使うか(Googleが多いかも)
そのサイトにプログラムで行くコード(Navigateという)
(3)WEBのweblioなどのサイトなど翻訳の専門サイトに行くコード
同時にそのサイトに、英語単語を引き渡すコード。
(4)たくさんの語義の候補が出る場合の、どれを選んで(使用者がマウスで選ぶことになろう)コピーするかのコード。人間がコピーするとして、それを捉えるコード
(5)そのコピーしたものをWordVBAで扱い、文書の所定の位置に貼りつけるコード
ーー
しかし、ワードVBAの解説書でも現在刊行されているのは2本ぐらいで、土屋和人氏のものが数年前に出ています。後はWEBの断片的な解説で勉強するしかない。
またWEBの仕組みを使ってやるとして、WEBをプログラムで扱うのはエクセルVBAなどの外縁の知識として、質問やWEB記事も多い。上記(2)(3)までは、解説が多い。
上記と別本で、土屋和人氏のIEをVBAで扱う解説本もある。
WEBの利用中にコードを用いて、必要なものを探させたり、画面のクリックを行わせたり、画面結果をコピーしてくるなどは、特別の知識が要る。プロ級の知識かWEBプログラムマニアでないとむつかしいと思う。
一般には素人が、マウスやキーボード入力を行い、判定や、結果を持ってくるのは人間が行い、コンピュタに移すのは、コピペしかない(または印刷)。
どうしてもやりたいというなら、こんな無料のサイトに質問するのでなく、相当の有料覚悟で、プロに相談すべきだと思う。特別なマニアや経験者でないと、素人では、指導者がなくて、何年たってもできるようにならないだろう。

投稿日時 - 2016-08-08 17:27:54

お礼

うーむ私の考えた通りだと、かなり複雑な工程になってしまうのですね。
いえ、訳語をまたWORDに持ってくることまでは不要で、weblioや用例が表示されるところまででよいのですが…
プログラミングどころか、PCの知識そのものが一般ユーザー(以下?)のレベルなのでツライところです。
WordVBA、Navigateなど、非常に有用なキーワードを教えていただきました。勉強になりました。
ご回答ありがとうございました。

投稿日時 - 2016-08-09 08:42:49

ANo.1

> 「pen 訳」という形でワンボタンで検索したいということです。

Googleの検索結果のトップに表示されるのが、Weblio辞書のサイトだったり、goo辞書だったりで、面倒な気もします。
goo辞書ならgoo辞書で翻訳って方が使い勝手が良いようにも思いますが。

VBAで翻訳ページを表示させるなら、
・Alt+F11でVBEditor起動。
・左側のプロジェクトエクスプローラーで、複数の文書で利用するなら、Normal、対象の文書だけならProjectを右クリックし、[挿入]-[標準モジュール]
・標準モジュールに以下を貼り付け。

Sub yaku()
 Dim objIE As Object
 Set objIE = CreateObject("InternetExplorer.Application")
 objIE.Visible = True
 objIE.navigate "https://www.google.co.jp/search?q=%E8%A8%B3+" & Selection.Text
End Sub

単語を選択した状態でマクロを実行すると、IEが起動して該当ページを表示。
ツールバーのボタン、右クリックメニュー、ショートカットキーなんかに割り当てできるハズ。

--
> ・「右クリックでgoogle!」というフリーウェアは入れてみました。
> (設定の仕方はあるのかもしれませんが、マニュアルを読んでもわかりませんでした。)

こちらで設定も出来るようです。
余計なアドイン入れたくないし、メールも面倒なので、自分は試してないですが。

作者のサイトがアクティブなので、相談してみるとか。

投稿日時 - 2016-08-08 16:13:38

お礼

教えていただいた通りの方法でできました!ショートカットキーの割り当てもできました。
欲を言うと、IEよりはChrome、新規ウィンドウの立ち上げよりは、新しいタブの立ち上げの方が私の使い勝手としてはよい、ということはあります。でも、少し検索しましたが、それだとだいぶ難易度があがりそうです。
ともかく私の希望通りの結果を得られました。本当にありがとうございました。

投稿日時 - 2016-08-10 14:42:52

あなたにオススメの質問