• 締切済み

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

質問させてください 知り合いから、ワードのマクロについて、問い合わせがありました。 質問は以下の通りです。 ===== 「ワードファイルの英文(論文など)の中から単語(または熟語)を検索し,その単語(または熟語)を含む文を全てリストアップする。」 というもの。 すなわち,自分の関連分野の英文をストックしておけば,英作文をする時に, この単語あるいは熟語はどんな使い方をするもんだろうか?の時に,すごく便利。 検索するだけならワード自体に機能があるが,要はその単語を含む文がすべて即表示され,読み比べられるということが味噌。 ===== 質問は、以上です。 ちなみに、私は、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

  • ワード+エクセルのマクロ

    めぐみと申します。 ワード+エクセルのマクロのことで質問させて頂きます。 少し複雑ですみません。 ワードに書いてある単語をエクセルの中に記載されてある辞書(A列の単語→B列の単語)を置換したいです。 対象ファイル: 1.ディレクトリ内にあるワードファイルすべてのワードファイル 2.エクセルファイル  A列 検索対象の単語  B列 置換対象の単語 動作: エクセルのマクロを実行すると同じ階層にあるワードを探して、A列の単語の一覧を検索してB列に置換 エクセルのマクロを実行してワードのファイルの中の単語を変換するといった複雑なマクロは可能なのでしょうか? 恐れ入りますがご存じの方がいらっしゃいましたら教えて下さい。

  • Wordのマクロで…

    Excelでは、A1のセルに長文を入力して、A2のセルにキーワードを入力し、 「このキーワードが長文の中に含まれるか否か?」をチェックするには =IF(COUNTIF(A1,"*"&A2&"*"),"○","×") のような式で答えが得られます。 ところで、Wordの場合、何らかの方法で文章のエリアを設定し、 (段落単位でもテキストボックスでも何でも構わないのですが) そのエリア内に入力した文章に、任意のキーワードが含まれるかどうか? をチェックするような、マクロを組むことはできるでしょうか? 複数のキーワードを含めなくてはならない長文を書くことが多く、 ついついキーワードもれをやってしまうので、そういうフォーマットが 作れたら便利だと思うのですが… いまはエクセルで、冒頭のような形でチェックしていますが、 やはり文章入力そのものはWordの方が入力しやすいので、 Wordで一発でできると助かると思うのですが… どなたか、よい知恵を授けてください。

  • エクセルのマクロ

    あるシートでabcという単語を検索してその単語の数がいくつあるかをあるセルに入れるようなマクロはありますでしょうか。例えば東京と検索して東京が2個あったとして、A5のセルにその2を入れたいのですがそれをマクロで自動的に入るようにしたいのです。 またできるとして、別のエクセルファイルのあるセルにも入れることはできますでしょうか? ご存知の方ご教授下さい。

  • 文字を下付にするマクロを教えて

    やりたいことは、マクロの中で ExcelファイルとWordファイルの行き来です。 具体的には、Word文章で文字の下付を走らせたいです。 Excelのシート「条件設定2」に下付けしたい文字を入力しておき、そのデータを読みとってWord文章で下付したいです。 マクロのイメージは次のように考えています。   Windows("マクロ集").Activate   Sheets("条件設定2").Select 対象文字 = Cells(17,12)  …… L17セルの 「TiO2」 下付文字 = Cells(17,13)   …… M17セルの 「2」   Set 対象ファイル = GetObject(, "Word.Application") Windows(対象ファイル).Activate    上記の「対象文字」、「下付文字」データでWord文章の文字下付を行う。

  • 英文について

    英文で、どういう時に英熟語で読み、どういう時に英単語で読むのですか? また、長文を読む時に、どこで区切るのですか?コンマ・ピリオド・接続詞・前置詞とまだ何かあったきがします。 最後に英文を書く時に、どこに接続詞を入れるのか教えて下さい。

  • WORDマクロで検索のプログラムをしているのですが

    こんにちは。 色々考えたのですが分からないので、よろしかったら教えていただきたいと思って投稿しました。 いま、WORDのマクロ(Visual Basic)を使って、テキストの検索をカスタマイズしています。 いま、やろうと思っていることは、 *************★******************************★******************************* のような文章があって、★印で囲まれた部分にある単語だけ、例えば★印に囲まれた部分にあるサーバという単語のみを検索したい場合、どのようなプログラムを書けばいいでしょうか。★印の外にあるサーバという単語は、検索したくないのです。 まず1つ目の★印を検索して、そこから検索をスタートさせればいいというのはいいのですが、その検索を次の★で終わらせる方法が思いつきません。 なにかいい案がありましたら、教えてください。よろしくお願いします。

  • wordで日本文と英文で別々の設定をしたいのですが…。

    word2007で質問です。 日本文と英文でフォントを分けることはできるのですが、一つの文章内で、大きさや斜体などを別々に設定することはできるのでしょうか? 例えば、日本文は10ポイントで、英文は11ポイントなどのように分けるなどです。 日本文と英文が頻繁に混ざるような文章で、体裁を整えるのが大変なので…。よろしくお願いします。

  • ワードのマクロの使い方を教えて下さい

    エクセルやアクセスのマクロの使い方は、ほどほどに理解しているつもりなのですが、 (VBAは自学自習で何とか自分の仕事に必要な部分は理解しているつもりです) ワードのマクロを使ったことがないので質問しました。 どのような仕事の時にマクロを使うのか具体的に教えて頂きたいのです。 Excelのマクロに関する本はたくさん見受けられますが、ワードのマクロに関しての本は見かけたことが有りません。 宜しくお願いします。

  • エクセルから、ワードを印刷する【マクロ】について

    タイトルの件、下記のとおり質問いたします。 【前提】 ●エクセルに、Sheet1、Sheet2がある ●ワードの文書1がある ●上記2つのファイルは同じフォルダにある。 ●エクセルのSheet1の情報は、ワード文書へリンクされている。  例:エクセルのSheet1のA1セルに、「あいうえお」と入力すると、ワード文書1の任意の部分に  「あいうえお」と反映される「ワードを開かなくても」 【質問】 エクセルにて、下記の印刷できるマクロがほしいです。 ●エクセル、Sheet1、Sheet2、ワード文書1を印刷できるマクロを、エクセル側にほしい。 ●エクセルは開くが、ワードは閉じたまま、印刷したい。 ●印刷するときに、ワードにて、「文書は変更されています。保存しますか?」というメッセージが  出ないようにして、印刷をしたい。 ご存知の方、いらっしゃいましたら、宜しくお願いします。

  • エクセルからワードのマクロを実行したい

    1. ワードで作られた報告書の表の数値をエクセルにコピーし、 2. その数値を使ってエクセルのオートシェイプでグラフを描き、 3. グラフをもう一度ワードの所定の位置に図として貼りつける、 というマクロを作成しています。ワードの表をコピーするマクロと、エクセルでグラフを描くマクロは作成できました。 問題はエクセルのシートに配置したコマンドボタンをクリックすると、グラフの入ったセル範囲をコピーするまではできたのですが、その後にワードのマクロを指定して実行させる方法がわかりません。 1.→2.のエクセルのマクロを実行する方はauto_openで何とかなったのですが、2.→3.は既にワード文書は開かれていますし、auto_openでは1.の手順ができなくなってしまうので困っています。 もし、エクセルのマクロでワードを操作などできるのでしたらそれでもよいのですが…。 ワードのマクロは初挑戦で、色々サイトも探したのですが見つかりませんでした…。 使用していますのは、Windows98SE,Excel97,Word97です。 ご存知の方、どうぞよろしくお願い致します。

専門家に質問してみよう