« selectionオブジェクトをrangeオブジェクトに書き換える | トップページ | 翻訳文の比較表作成 »

2009年4月25日 (土)

【改良】キーワードが掲載されたページを取得する

以前、「キーワードが掲載されたページを取得するマクロ」を紹介いたしました。

今回は、ご要望をいただいた中で一番多かった「取得ページをテキストで書き出してほしい」という点で改良してみました。

使い方は、前回のマクロと同じですが、結果の表示方法を変えました。また、プログラムの構造もシンプルに変えました。

あと、今回もrangeオブジェクトで作ってあります。

「pagesearch2.dot」をダウンロード

●使い方
ダウンロードしたマクロをスタートアップフォルダに保存してください。(保存方法は、こちら

表示されるボタンと機能は前回のマクロと同じです。

●改良点

Pagesearch20
・キーワードと記載ページ番号を別ファイルに表示(一覧表にします)
・重複するページ番号を削除

●表の書き方
940行以降に記載しました。
とりあえずマクロの記録でコードを書き出してみて、必要と思われるところだけを使いました。

このコードだと、表の罫線は無色になります。印刷されません。

その後、表のセルに項目名と取得情報を入力しています。

940       ActiveDocument.Tables.Add _
              Range:=Selection.Range, _
              NumRows:=Cnt + 1, NumColumns:=2
950       ActiveDocument.Tables(1).Cell(1, 1).Range.Text = "キーワード"
960       ActiveDocument.Tables(1).Cell(1, 2).Range.Text = "ページ番号"
             
          '取得情報の入力
970       For i = 1 To Cnt
980           ActiveDocument.Tables(1).Cell(i + 1, 1).Range.Text = patNum(i)
990           ActiveDocument.Tables(1).Cell(i + 1, 2).Range.Text = pageNum(i)
1000      Next i

●重複ページ番号の削除
200行から800行です。このコードは美しいですね。

自分で考えたのではありません。以前紹介したニュースグループに投稿して、回答をいただいたものをアレンジしてみました。

回答をいただいたページはこちら。あっという間に、プロの方からの回答が得られるので、ありがたいですね。みんなで活用しましょう。

ここで回答してくれる方は、自分の本名や所属する会社名を出されている方がいます。それだけに信憑性が高い気がします。

●工夫
前回のプログラムから大幅刷新しました。

ワイルドカードを使用する場合と通常の検索の場合とで、同じプログラムを利用します。

wildというフラグを立てて、判定するようにしました。(340行~380行)

●キーワード
Left$ 文字列から不要項目を削除するときに使っています。(710行)
ActiveDocument.Tables.Add 表作成

|

« selectionオブジェクトをrangeオブジェクトに書き換える | トップページ | 翻訳文の比較表作成 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/519619/44785450

この記事へのトラックバック一覧です: 【改良】キーワードが掲載されたページを取得する:

« selectionオブジェクトをrangeオブジェクトに書き換える | トップページ | 翻訳文の比較表作成 »