2008-06-28

編集者な日々(4) 単語の使用回数を知る

ドラフトが完成に近づく中、何かコメントを入れる際は、他の箇所にどのような影響が及ぶか予測したかったりします。

その際に役に立つのは、今直しを入れようとしている単語がどの程度使われているか知ること。マイナー単語なのか、いっぱい使われているのか。


で、それようのマクロを昔作っていたのを思い出し、引っ張り出してみました。

ワードで文字を選択した状態でこのマクロを走らせるとそのドキュメント上にその単語が何個あるか表示してくれるというとてもシンプルな機能。

たとえば「支配権」とかいう単語がその章で何回使われているのか知りたい場合、支配権、ってのを選択してこのマクロを走らせるだけですぐに知ることができます。

個人の環境では、これをctrl + alt + 十字キーの0に割り当てて、適宜使っています。
割り当てのためのマクロは

'選択単語の使用回数を数える ctrl + alt + num 0
CustomizationContext = NormalTemplate
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyNumeric0, wdKeyControl, _
wdKeyAlt), KeyCategory:=wdKeyCategoryMacro, Command:="選択単語"

ctrl + alt + num 0を、選択単語というマクロを起動させるというショートカットにしろというものですね。

で、本体の選択単語というマクロ。センスのない名前ですが。
ま、よろしければお使いください。

Sub 選択単語()

Dim hit As Integer
Dim yougo As String

hit = 0
yougo = Selection.Text

'画面更新をしない
With Application
.ScreenUpdating = False
.DisplayAlerts = wdAlertsNone
End With

NewWindow

'画面更新をしない
With Application
.ScreenUpdating = False
.DisplayAlerts = wdAlertsNone
End With


'画面の設定
ActiveWindow.ActivePane.View.Type = wdPrintView


'変更履歴関係の処理
With ActiveWindow.View
.ShowRevisionsAndComments = False
.RevisionsView = wdRevisionsViewFinal
End With



Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting

With Selection.Find
.Text = yougo
.Forward = True
.Wrap = wdFindContinue
.Format = True '上記フォーマットを利用する
.MatchCase = True '大文字小文字の区別
.MatchWholeWord = False
.MatchByte = True '半角全角の区別
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = False
End With



'検索でヒットした文字列を太字にし、色を変える
Do While Selection.Find.Execute = True
'ヒットした数を加算
hit = hit + 1

Selection.Collapse wdCollapseEnd

Loop

ActiveWindow.Close

'画面設定戻す
With Application
.DisplayAlerts = wdAlertsAll
.ScreenUpdating = True
End With



MsgBox "「" & yougo & "」" & "は、この文書(クリーン)中で " & hit & " 回使用されています。"


End Sub

No comments: