こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ワード索引の作成

一つの単語が複数ページに存在します。索引登録後に「索引の挿入」で索引を表示させると、同一単語が複数ページに存在するとき、その数だけ行が分かれて表示されてしまいます。同じ単語なら、ページがカンマで区切られて表示されるはずですが、どうしてですか。教えて欲しいです。うまく表示されている単語もあります。

投稿日時 - 2019-09-29 13:54:46

QNo.9661842

困ってます

質問者が選んだベストアンサー

補足に関し、感想を述べます。
(1)完全一致
索引作成の操作には、完全一致を指定するメニューがなく、索引を自作するほかないでしょう。
しかし
(A)Words オブジェクト を使う方法
(テスト的に、文書内の、数文を選択しておいて実行)
Sub test010()
Dim wd
For Each wd In Selection.Words
MsgBox wd
Next
End Sub
で捉えられる単語は、索引を作るには余分な語句や記号まで出てきて、
使いずらい。どれだけ省略すべきか、単語の品詞も捉えられず、複合語も分解されてしまって使いずらい。英字文ならどうなるか小生は未経験。
(B).人間が蛍光ペンで語句などをマークし、WordVBAを使って、「完全一致」で文書全体を検索し、同語のすべての部分を同色の蛍光ペンでマークする。
終わったら、WordVBAで蛍光ペンのマーク部分の語句を拾い出し、ページ数とともに表などにリスト化する。
そしてアルファベット順とかに並べ替えて、同じ語は出現ページをカンマで連ねるように編集する。
ーーー
(2)クリックで、文書の該当箇所にジャンプ
これもWordVBAで出来なくはないと思うが。
(1)(A)(B)、(2)とも、WordVBAの熟練者である必要があり、コード作成とテストには、相当時間がかかると思う。
 だから今回は回答に上げることはできないが。

投稿日時 - 2019-10-02 11:47:00

お礼

アドバイスありがとうございます。どうやら完全一致は機能がない限りwordでは実用的ではないようです。諦めます。知恵を貸してくださりありがとうございます。

投稿日時 - 2019-10-02 22:25:49

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

質問を正しいとすると、ワードのバグということになるが、にわかには信じがたい。
下記で、もう一度やってみて、結果を報告願えませんか。
ーー
この文書をコピーを取る。
コピーした方(写し)の文書で、
開発ーVisualBasicー挿入ー標準モジュールで
下記をコピペして
Sub 索引項目一括削除()
dim myfield
For Each myfield In ActiveDocument.Fields
If myfield.Type = wdFieldIndexEntry Then
myfield.Delete
End If
Next
End Sub
上記のコード群(行)のどこでもクリックしておいて、実行ーSub/ユーザーフォームの実行。
これで、この文書上に、索引関係の「フィールドの挿入」されたものが、一括抹消できるはず。
ーー
そしてもう一度、問題の単語だけでもよいから、「索引登録」の操作をする。
(ひょっとして、単語の指定の前後に、余分な部分を指定していまえんか。)
そして「索引の挿入」操作をする。
カンマ区切りで続くのでなく、やはり「その数だけ行が分かれて表示されて」しまいますか。

投稿日時 - 2019-09-29 22:17:25

補足

ご助言ありがとうございます。頂いたコードを実行し登録済み索引を消去後数個の単語を登録してみました。改行されずにカンマ区切りで正しくページが表示されています。余計な空白とか挿入して登録されていたのかもしれませんが、原因はわかりません。しかし、別の問題を見つけて困っています。英単語の索引を作っているのですが、例えば、"owe"という単語を索引登録すると、"however"が"owe"の索引としてカウントされてoweのページに含まれてしまいます。登録時に完全一致で登録されるのでなく、"owe"の文字列が含まれる単語という判断で索引が登録されるためでしょう。これを回避する方法はないですか。それから、索引のページ番号をクリックすると、指定のページにジャンプすることができるように思っていたのですが、この機能はないのですか。私はmacOSユーザーです。

投稿日時 - 2019-09-29 23:22:40

あなたにオススメの質問