Word VBA

ワード・マクロ(VBA)の活用2

2 「書くこと」と「調べること」 WordからのWeb情報検索

■ 書くことと調べること

(1) 法律実務家が文章を「書く」のは,今や「キーを打つ」ことと同義語になった感があるが,それは,頭の中に浮かんだことを,ひたすらキーで打ち込むだけの作業ではない。
 法律実務で要求される文書作成においては,書く目的,内容に応じて,認識し把握し得た事実と,これを法的に判断する基準となる法令,判例等の調査,確認と,これ基づく構成と文章表現が欠かせない。

(2) その文書作成においては,@事実や情報を確認しながら,A資料と照合し,B法令を参照し,C判例を調べ,D辞書で言葉や用語の意味を調べて,E一定の文章スタイルに仕上げていく作業が必要になる。
 それは,一方向の単線的な作業ではなく,上記の諸作業を行きつ戻りつ繰り返される知的な創造作業であり,「文章を書く(リーガルライティング)」と「調べること(リーガルリサーチ)」とは,一体不可分の関係にある。

(3) ワープロ画面に文章を打ち込んだ後,用語の意味や関連情報を調べるために,また別にWebブラウザソフトを開いて,同様の文字を打ち込んで調べたりしていては,思考のスピードや文章起案の能率性も阻害されてしまう。

(4) 今やインターネット常時接続の時代である。ワープロ画面に打ち込んだ文字が,そのままWeb上の辞書や資料等の情報閲覧に直結すれば,どうなるか。書きながら調査もでき,調査結果は直ちに文章起案に活かされるようになる。
 ワープロソフトWordにも,こうしたライティングとリサーチが直結した機能が求められる。


■ Wordのリサーチ機能

(1) 上記のようなリサーチの機能は,実は,既にWordに備わっている。リサーチ機能がそれであり,インターネット接続環境で,入力済みの文字列から国語辞典検索や情報検索,翻訳ができる。
 画面上で文字列を選択し,Wordのメニューバーから「ツール」→「リサーチ」をクリックしていけば,画面右側にリサーチ作業ウィンドウが開き「検索する文字列」が表示される。
 検索場所を「国語辞典」「翻訳」等と指定して検索すれば,その意味内容が下部に表示される。検索先を「Bing」で検索すれば,マイクロソフトの検索エンジン「Bing」に接続して,その検索結果が下部に表示される。
 文字列を範囲指定し,[Alt]キーを押しながらクリックしても,リサーチ作業ウィンドウが表示され,同様の機能が実現される。ただ,表示画面が小さいという問題があるかも知れない。

(2) この機能で足りるのであれば,それでいけないわけではないが,そこにはマクロ(VBA)は必要がないし,マクロ(VBA)による発展的な知的作業の広がりは望めない。


■ マクロ(VBA)の活用

(1) では,マクロ(VBA)を使って,画面上の文字列を指定してボタンを押せば,直ちに検索機能が働き検索結果が表示されるには,どうすればよいか。

(2) これを実現するには,以下の3つの条件が必要である。
 @Word画面上の文字を範囲指定すれば,その文字が自動取得できること,AWordから直接インターネットの検索サイト(GoogleやYahoo!など)に接続できること,B特定の検索サイトからダイレクトにより用語検索ができること,の3つである。
 このうち@AはWordのマクロ(VBA)で可能であり,BはGoogle(グーグル)の検索サイトで実現される。
 これらは,前記のとおりWordが内部でリサーチ機能として既に実現していることもでもあるが,ここでは,これをマクロ(VBA)により拡張的に実現することを試みたい。


■ マクロ(VBA)を利用したWeb検索

(1) こうした機能を実現するためには,次のようなマクロを作成し,これを実行すればいい。

 なお,ここでは,パソコンの使用環境として,基本的に,WindowsXP,Microsoft Office Word 2003,Internet Explorer6.02(SP3)の使用を前提として説明していくが,ここで取り上げるマクロ(VBA)は,Windows7,Microsoft Office Word 2010,Internet Explorer8の環境でも問題なく作動することを確認している。
 (注) Word2003の延長サポート期間終了日は,2014/04/08である。(マイクロソフト社)

(2) 一例として,画面上の用語を範囲指定し,そのままGoogle(グーグル)検索できるマクロを作ってみる。
プログラム
1

2
3

4
5

6

7
Sub GoogleSearch( )

      Dim Search As String
      Dim URL As String

      Search = Selection
      URL = "http://www.google.co.jp/search?q=" & Search

      ActiveDocument.FollowHyperlink Address:=URL, NewWindow:=False, AddHistory:=True

End Sub

(3) このマクロを簡単に解説すれば,少し専門的,技術的な話になるが,
 ア 「GoogleSearch」はマクロ名であり,名前は「Kensaku」でもよい。「Sub マクロ名()」に始まり「End Sub」で終わる部分は,「プロシージャ」と呼ばれる。英語でprocedureであり,「legal procedure」といえば訴訟手続と訳されるように,「処理手続」を意味するプログラムの構成部分である。

 イ 2,3行目冒頭の「Dim」は,電子処理用の器(入れ物)の特性の宣言(Dimensin)であり,2行目は検索する文字列を「Search」という器(変数)に入れ, 3行目は検索先のURL(Web上のアドレス)を入れる器(変数)の宣言を示す。入れ物の名前は原則自由である。

 ウ 4行目は,器のSearchには,検索しようとする用語として,Word画面上で範囲指定により選択された(反転状態になる)文字列を代入する。その文字列は,「Selection」で取得され,パソコン上,処理対象として特定・認識される。Word・VBA上,この「Selection」は,入力済み文字列の取得に重要な役割を有し,他にもWordの機能アップに幅広く活用できるものである。

 エ 5行目は,検索先のURLとして,Web上のグーグルのアドレスと,そこで検索する用語を直結させて検索するよう指示内容を代入することを意味する。

 オ 6行目は,代入結果で,Word・VBAの特定の機能を使い,Webのグーグルと接続させ,検索結果をWindowに表示させるパソコンへの命令語である。


■ Word上で選択した文字列のWeb検索マクロの仕組み

(1) 以上のようなWeb検索マクロは,既に,翻訳業務に従事している方のホームページやブログ等にも見られる。

  〔みんなのワードマクロ〕というサイトには,Word上で選択した文字列のグーグル検索マクロとして次のようなマクロが掲載されており,ブログの〔外国語と文書作成&翻訳の情報源〕にも取り上げられている。
Sub グーグル検索( )
      Dim word As String
      Dim URL As String
      word = Selection
      URL = "http://www.google.co.jp/search?q=" & word
      ActiveDocument.FollowHyperlink address:=URL, NewWindow:=False, AddHistory:=True
End Sub

 また,〔医薬品・医療機器の研究・開発ポータルサイト・Word/VBA プログラミング〕にも,文書内の文字列をWebで検索するマクロとして,ほぼ同様のものが掲載されている。

(2) 専門分野で,言葉を駆使して表現し,文字,文章を作成・編集等をする場合には,それぞれに仕事の必要上,プロにはプロの道具があり,マクロを使った工夫とツールが開発されているのである。
 

■ WordからのWeb検索マクロの基本

(1) ここで,このマクロの重要な点は,Wordから直接インターネットの検索サイトに接続できる前記表の6行目の仕組みである。
 これを使えば,文書を作成しているWord画面から,直接Googleを使った情報検索ができ,関連するサイトへ直接ジャンプし,情報が取得できる。このハイパーリンク機能が,情報検索の飛び歩きの幅を広げ,情報活用,思考作業の促進剤となってくれる。

(2) 2002年に当サイトに掲載した裁判文書作成支援ソフト「Quick Writer」(今となっては古い)には,「インターネットエクスプローラ」により,ネット上の「実務の友」に接続できるプログラムを組んでいる。それは「Visual Basic 6」で作成したものであるが,マクロの記述は,基本的にVBAと同様である。
Private Sub mnuHPage_Click( )
      Dim URL As String
      Dim IE As Object
      ' 指定URL「実務の友」を開く
      URL = "http://www5d.biglobe.ne.jp/~Jusl/"
      Set IE = CreateObject("InternetExplorer.Application")
      IE.Navigate2 URL
      IE.Visible = True
End Sub

(3) Word・VBAで,上記の「CreateObject」「Navigate」を使ってネット接続をしようとすると,WindowsXP上インターネットエクスプローラを利用して実行すれば機能する。しかし,このままでは,アップル・パソコンのMac上のWordでは機能しないという不都合がある。

(4) ところが,マイクロソフト社が提供するソフト開発者向け技術情報サイトmsdn(英語版)には,次のようなマクロが紹介されており,これに従えば,正常に動作する。マイクロソフト社のサイトからの情報であり,信頼はおけるだろう。(→和訳参照
      ActiveDocument.FollowHyperlink _
         Address:="http://www.Microsoft.com", _
         NewWindow:=True, AddHistory:=True

(5) 上記の「Word上で選択した文字列のWeb検索マクロ」は,このプログラムに準拠しており,これを利用する限り,同一のWordファイルを使用しても,Windows上であれ,Mac上であれ,Web検索が実現する。

 なお,上記技術情報サイトによれば,「NewWindow:=True, AddHistory:=True」については,新しいwindowに表示するか,履歴フォルダに追加するか否かの設定オプションであるが,いずれも省略可能とされている。実際に省略しても,正常の動作と変わりはない。



2010.7.19 〜
|
TOP
|
[ HOME ]