• 締切済み

英文の抽出マクロについて(ワード)

質問させてください 知り合いから、ワードのマクロについて、問い合わせがありました。 質問は以下の通りです。 ===== 「ワードファイルの英文(論文など)の中から単語(または熟語)を検索し,その単語(または熟語)を含む文を全てリストアップする。」 というもの。 すなわち,自分の関連分野の英文をストックしておけば,英作文をする時に, この単語あるいは熟語はどんな使い方をするもんだろうか?の時に,すごく便利。 検索するだけならワード自体に機能があるが,要はその単語を含む文がすべて即表示され,読み比べられるということが味噌。 ===== 質問は、以上です。 ちなみに、私は、Excelマクロ(VBA)は、 一通りプログラミングの知識はあります。 しかし、これまで、ワードでマクロを使う必要性がなかっったため、 ワードの文章を検索するマクロをイメージがわかない状況です。 Excelには、「セル」というオブジェクトがあり、その中の、  ・データの値、色、フォント。  ・セルのプロパティ 等に処理を施します。 例えば、Excelのセルの中に英文がある場合、  「あるピリオドの次の文字」から「次のピリオド」 までを一つの文章として、一文字ずつ検索することがイメージできます。 しかし、ワードには、セルの概念がないため、仮に、マクロを自動記録させても、  ・セルを選択してから、目的の単語を含む『文章』までも検索する ことが難しいと感じます。 ちょっと漠然とした質問かもしれませんが、 どのような感じでブログラムを作られるか、また、作った経験のある方。 参考意見をお待ちしております。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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/nn20090929a1.html ------------------------------------------- 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/

da-suke
質問者

お礼

ありがとうございました。 数式と文章。 それぞれを扱うソフトのマクロは、全く別物的なイメージがあったのですが、 Wendy02様の解答で、その考えが決してはずれていないことがわかりました。 >Cell の概念(=オブジェクト)はあります。しかし、Tables の中に発生するものです。 > はい。 この概念は理解できます。 個人的には、Tables(表)付きの文章を作る場合、Excelで代用することが多いです。 ワードの表は使いづらいですね。 (ワープロは一太郎が日本人向きかと思います) いただいた情報を元に、何ができるか、少し勉強してみたいと思います。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

こちらが参考になると思います。 WORDの文字をマクロで色替えするには? http://oshiete1.goo.ne.jp/qa5321541.html

da-suke
質問者

お礼

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

関連するQ&A