Wordのマクロの名前
Wordでマクロが有効になっているとき、キーバインドで使われる名前と同じ名前のサブルーチンをドキュメントに定義するとその機能を乗っ取れるような気がする・・・。とりあえずWord2003の話。最近のはシラネ。意図せず名前が被ってしまうと使えなくなる機能が出てきてしまうので注意が必要デース。
たとえば、F9キーには"UpdateFields"というのが割り当てられていて、これはフィールドを更新します。図表番号を振りなおしたりとかね。
そこで、以下のような関数を定義すると・・・
sub UpdateFields() MsgBox("フィールドを更新させてなるものか!") end sub
なんと、フィールドを更新できなくなってしまうのです!!恐ロシア!!誰得!?
ちなみに、これをやるとF9キーだけでなく、フィールドの上で右クリックして「フィールドの更新」をやってもフィールドを更新できないのです。
さらにちなみに、UpdateFieldsの正しい実装はたぶんこんな感じ。
sub UpdateFields() Selection.Fields.Update end sub
折角なので、常に全部のフィールドを更新したい人(俺とか)は
sub UpdateFields() ThisDocument.Fields.Update end sub
こんな風にしとけばいいんじゃないでしょうか。