プロが教える店舗&オフィスのセキュリティ対策術

質問させてください

知り合いから、ワードのマクロについて、問い合わせがありました。
質問は以下の通りです。

=====
「ワードファイルの英文(論文など)の中から単語(または熟語)を検索し,その単語(または熟語)を含む文を全てリストアップする。」

というもの。

すなわち,自分の関連分野の英文をストックしておけば,英作文をする時に,
この単語あるいは熟語はどんな使い方をするもんだろうか?の時に,すごく便利。
検索するだけならワード自体に機能があるが,要はその単語を含む文がすべて即表示され,読み比べられるということが味噌。
=====

質問は、以上です。

ちなみに、私は、Excelマクロ(VBA)は、
一通りプログラミングの知識はあります。

しかし、これまで、ワードでマクロを使う必要性がなかっったため、
ワードの文章を検索するマクロをイメージがわかない状況です。

Excelには、「セル」というオブジェクトがあり、その中の、
 ・データの値、色、フォント。
 ・セルのプロパティ
等に処理を施します。

例えば、Excelのセルの中に英文がある場合、
 「あるピリオドの次の文字」から「次のピリオド」
までを一つの文章として、一文字ずつ検索することがイメージできます。

しかし、ワードには、セルの概念がないため、仮に、マクロを自動記録させても、
 ・セルを選択してから、目的の単語を含む『文章』までも検索する
ことが難しいと感じます。

ちょっと漠然とした質問かもしれませんが、
どのような感じでブログラムを作られるか、また、作った経験のある方。
参考意見をお待ちしております。

A 回答 (2件)

こんにちは。



今回の質問は、検索マクロではありませんから、Wordで一から作ると、ちょっとややこしいです。思ったほどのものはできません。本当は、一旦、テキスト出力して、データベースにいれたほうがよいのですが、Wordだけですと、Dictionary オブジェクトを使わなくてはならないはずです。

「ワードには、セルの概念がないため、仮に、マクロを自動記録させても、
 ・セルを選択してから、目的の単語を含む『文章』までも検索する」
Cell の概念(=オブジェクト)はあります。しかし、Tables の中に発生するものです。
Document -->Selection --->Paragraph, Range, Word

多くの人は、Excel VBAが分かれば、Wordも分かるだろうと高をくくって回答を書く人がいますが、ほとんどまともなコードは出ていません。真面目な勉強が必要です。しかし、ここの質問者さんの多くは、本格的にWordのコードを評価する人は皆無に近いです。きちんとするために、長く書けば、それだけで不可では、もう話にはなりませんね。WordにPDICのOLEを呼び込んで検索ツールを作っても良いとは思ったりしますが、掲示板では公開するつもりはありません。

質問者の中には、Word VBAには向かないと繰り返し説明しても、是非にといわれ、作ってあげても、これは違うとダメだしをする人がいます。もともと、最初から、入り口が違っているものもあります。伝統的には、Perl やAWK やSED という、テキスト・ストリームのツールがふさわしいのです。

あえてMS-Wordで作れといっても、掲示板上では、大したものにはなりません。

ただ、もともと、本質的には、MS-Word自体の問題だと思うのです。昔は、アメリカ産の便利なツールが一杯あったのです。

「ワードファイルの英文(論文など)の中から単語(または熟語)を検索し,その単語(または熟語)を含む文を全てリストアップする。」

熟語判定は、そう簡単ではありません。特別な辞書データが必要です。テキスト熟語データとしては、SILというデータがあります。それを検索する必要があります。熟語を含む単語リストを作るツールは、シャープさんが作っていた記憶があります。販売はしていましたが、開発途中でDiscontinued してしまったような気がします。やはり採算性がないと無理なのかもしれません。

ご質問の内容というのは、大学院レベルの英語関係者でコンピュータに詳しい人なら知っている「コンコーダンサー(Concordancer)」のことだと思うのです。アメリカでも、日本の大学でも、英語でしたら、そういうツールはフリーで公開されていると思います。

たとえば、以下のように出力されます。
コンコーダンスは、以下のようになります。

データ元
Japan Times
http://search.japantimes.co.jp/cgi-bin/nn2009092 …
-------------------------------------------
Concordancer での出力です。クリックすると、その文章が出てくる
-------------------------------------------
the 122
of 67
to 59
a 51
and 39
in 37
was 30
he 27
party 25
his 23
that 20
be 18
had 18

「自分の関連分野の英文をストックしておけば,英作文をする時に,
この単語あるいは熟語はどんな使い方をするもんだろうか?の時に,すごく便利。」

Wordのサンプル
http://oshiete1.goo.ne.jp/qa5059719.html
リストされた単語をピックアップし、単語集を作り、その単語集にハイパーリンクをつけるもの

そうした作業をするツールのことを、同じく大学で公開されてい。「KWIC」というツールです。(KWIC Finder というのは、個人が作っているもので、似てはいますが若干が違います。WordやExcelやpdf 内の中を検索します。有償です。)

公開Webツールとしては、以下のようなものがあります。Google では、全部拾ってきますが、検索サイトが限られていますので、比較的良質な内容が検索できます。

EReK
http://erek.ta2o.net/
    • good
    • 0
この回答へのお礼

ありがとうございました。

数式と文章。
それぞれを扱うソフトのマクロは、全く別物的なイメージがあったのですが、
Wendy02様の解答で、その考えが決してはずれていないことがわかりました。

>Cell の概念(=オブジェクト)はあります。しかし、Tables の中に発生するものです。
>
はい。
この概念は理解できます。

個人的には、Tables(表)付きの文章を作る場合、Excelで代用することが多いです。
ワードの表は使いづらいですね。
(ワープロは一太郎が日本人向きかと思います)

いただいた情報を元に、何ができるか、少し勉強してみたいと思います。

お礼日時:2009/10/02 01:05

こちらが参考になると思います。


WORDの文字をマクロで色替えするには?
http://oshiete1.goo.ne.jp/qa5321541.html
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にしてみたいと思います。

お礼日時:2009/10/02 00:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!