ワードで選択した文字列を各種検索エンジンで検索するためのマクロです。インストールすると右クリックメニューに「Context Search」が追加され、自分で登録・編集した複数の検索エンジンを使って検索することが可能となります。
※Version 1.2から表内、リスト内でも右クリック検索ができるようになりました。
このマクロの目的
ワードを使って文書を編集している時、「この場合は『挙げる』だろうか、それとも『上げる』だろうか、ちょっと調べてみよう」ということがよくあります。そこで、オンライン辞書などで調べようとするのですが、そのためには「ワードで文字列を選択し、右クリックしてメニューからコピーを選択し、ブラウザを立ち上げ、ブックマークからサイトを選択し、当該サイトの検索窓にコピーした文字列を貼り付ける」というステップを踏む必要があります。1~2回なら我慢できますが、これを繰り返していると小さなストレスが積もっていきます。
この「ContextSearch」というマクロは、上記の煩雑なステップを「文字列選択、右クリック、検索」に短縮し、作業の省力化を図ることを目的にしています。文書作成時のイライラが少しだけ収まると思います。
インストールとアンインストール
インストールに先立ち、ワードは閉じておいて下さい。
まず、下記のリンクから圧縮ファイルをダウンロードします。
ダウンロード:contextsearch_v_1_2.zip
ダウンロードしたファイルを解凍すると、「contextsearch.dotm」と「url.csv」の2つのファイルが出てきます。この2つのファイルを下記のフォルダにコピー+貼り付けします。
C:\Users\ユーザー名\AppData\Roaming\Microsoft\Word\STARTUP
※「ユーザー名」の部分に自分のユーザー名が入ります。エクスプローラーでフォルダを開く場合、Cドライブ→Users→ユーザー名→AppData→Roaming→Microsoft→Word→STARTUPの順にフォルダをたどっていきます(Windows 11、Office 365の環境)。
ワードを起動します。適当なファイルを開いて文字列を選択し、右クリックすると表示されるメニューに「Context Search」が追加され、上掲の図のように検索エンジンの一覧が表示されます。検索エンジンを選ぶとブラウザが立ち上がり、WEBサイトで検索結果が表示されます。
※「contextsearch.dotm」と「url.csv」は必ず上記フォルダに一緒に置いて下さい。
アンインストールの際は、ワードを閉じてから上記2ファイルをスタートアップフォルダから削除します。
検索エンジンの追加・編集
検索エンジンは、ユーザーが自由に登録できます。
「url.csv」をメモ帳などのテキストエディタで開いて下さい。文字コードはシフトJISです。
検索エンジン名〈タブ〉サイトのURL〈改行〉の形式でデータが登録されています。
タブ区切りのファイルですが、エクセルなどで開いて編集すると正しく動作しなくなりますのでご注意下さい。
例:
Google〈タブ〉http://www.google.com/search?q=%s
検索エンジンは上記のように登録されています。URL中の「%s」がワードで選択した文字列に置き換えられ、検索が実行されます。
なお、「url.csv」を開くと先頭に「#」が付いている行があります。これはコメント行でファイル読み込みの際には無視されます。
検索エンジンの登録例
以下に当方が登録しているサイト群を例として示します。ご参照下さい。
http://www.google.com/search?q=%s | |
北辞郎 | http://www.ctrans.org/search.php?word=%s |
英辞郎 | http://eow.alc.co.jp/sp/search.html?q=%s&pg=1 |
Google-cn | https://www.google.com/search?num=50&lr=lang_zh-CN&hl=zh-CN&q=%s |
Google-tw | https://www.google.com/search?num=50&lr=lang_zh-TW&hl=zh-TW&q=%s |
Youdao | http://dict.youdao.com/search?q=%s |
dict.cn | http://dict.cn/%s |
iCiba | http://www.iciba.com/%s |
漢典 | http://www.zdic.net/search/?q=%s |
Wikipedia | https://ja.wikipedia.org/wiki/%s |
コトバンク | http://dic.search.yahoo.co.jp/search?ei=UTF-8&fr=kb&p=%s&dic_id=all&stype=full |
Weblio類語辞典 | http://thesaurus.weblio.jp/content/%s |
百度 | http://www.baidu.com/s?wd=%s |
Bing | http://www.bing.com/search?q=%s |
Yahoo! | http://search.yahoo.com/search?vc=&p=%s |
免責
このマクロはWindows 11、Office 365の環境で動作を確認しています。そのほかの環境での動作は保証しません。
また、このマクロの使用に伴ういかなる損失についても作者は責を負いません。
ソース
マクロのソースは下記の通りです。ライセンスはBSDとします。
Dim SearchEngines As New Scripting.Dictionary
Dim CommandBarTypes(100) As String
Sub AutoExec()
SetCbarTypes
'検索エンジンのデータを取得
If GetInitData() = False Then
MsgBox "検索エンジンデータの取得に失敗しました", vbOKOnly, "Context Search"
Exit Sub
End If
For i = 0 To 12
UpdateRightClickMenus (CommandBarTypes(i))
Next i
End Sub
Sub AutoExit()
ResetRightClickMenus
End Sub
Sub SetCbarTypes()
CommandBarTypes(0) = "Text"
CommandBarTypes(1) = "Linked Text"
CommandBarTypes(2) = "Table Text"
CommandBarTypes(3) = "Font Paragraph"
CommandBarTypes(4) = "Linked Headings"
CommandBarTypes(5) = "Linked Table"
CommandBarTypes(6) = "Linked Text"
CommandBarTypes(7) = "Lists"
CommandBarTypes(8) = "Table Cells"
CommandBarTypes(9) = "Table Lists"
CommandBarTypes(10) = "Tables"
CommandBarTypes(11) = "Tables and Borders"
CommandBarTypes(12) = "Text Box"
End Sub
Private Sub UpdateRightClickMenus(ByVal CurType As String)
Dim MyMenu As Object
Dim MainMenu As Object
Dim SubMenu As Object
Dim i As Long
'いったん削除
Set MyMenu = Application.CommandBars(CurType)
MyMenu.Reset
'メニューに登録
Set MainMenu = MyMenu.Controls.Add(Type:=msoControlPopup)
With MainMenu
.Caption = "Context Search"
.BeginGroup = True
End With
'サブメニューを構築
For i = 0 To SearchEngines.Count - 1
Set SubMenu = MainMenu.Controls.Add()
With SubMenu
.Caption = SearchEngines.Keys(i)
.OnAction = "ContextSearch"
End With
Next i
End Sub
Private Sub ResetRightClickMenus()
For i = 0 To 12
Application.CommandBars(CommandBarTypes(i)).Reset
Next i
End Sub
Sub ContextSearch()
Dim target As String
Dim url As String
target = Selection
If target = "" Then
Exit Sub
End If
For i = 0 To SearchEngines.Count - 1
If SearchEngines.Keys(i) = Application.CommandBars.ActionControl.Caption Then
url = Replace(SearchEngines.Items(i), "%s", target)
url = Replace(url, " ", "+")
url = Replace(url, " ", "+")
Exit For
End If
Next i
ActiveDocument.FollowHyperlink Address:=url
End Sub
Function GetInitData() As Boolean
Dim buf As String
Dim path As String
Dim tmp As Variant
Dim FileNo As Integer
path = Application.StartupPath & "/url.csv"
If Dir(path) = "" Then
GetInitData = False
Exit Function
End If
FileNo = FreeFile()
Open path For Input As #FileNo
On Error Resume Next
Do Until EOF(FileNo)
Line Input #FileNo, buf
'コメント行は無視
If Left(buf, 1) <> "#" Then
tmp = Split(buf, vbTab)
'検索エンジン名+URLでなければ無視
If UBound(tmp) = 1 Then
SearchEngines.Add tmp(0), tmp(1)
End If
End If
Loop
Close #FileNo
GetInitData = True
End Function
更新情報
2024/10/20 Version 1.2 表やリスト内でも右クリック検索ができるように変更