選択部分のフィールドコードだけを表示させる(Word)
選択範囲のフィールドコードを表示させる
キーボード上での[Shift] + [ F9 ](半角モード)をVBAで実現する方法。
これまで、[Window].[View].ShowFieldCodes
プロパティのオンオフ(True/False
)切り替えしか知らなかった。
ちょこちょこっと調べてみたら、選択範囲のフィールドコードだけを表示させる方法が判明したので、覚書的に記しておく。
FieldオブジェクトのShowCodesプロパティ
早い話、[Field].ShowCodes
プロパティのオンオフ(True/False
)を切り替えたらよい。それだけ。
リスト1
Private Sub test() Dim tgtField As Field Set tgtField = Selection.Fields(1) With tgtField .ShowCodes = Not .ShowCodes End With End Sub
とりあえず、選択範囲にフィールドコードがあることが前提の決め打ちコード。
フィールドコードのある部分を選択せずにこのコードを実行したら、当然実行時エラーになるので注意。
ドキュメント(笑)上で、
このようにルビが施された部分を選択して、リスト1を何度か実行。
このように、あたかも[Shift] + [ F9 ]を押したかのように、フィールドコードの表示・非表示が切り替えられる。
おわりに
ルビ情報を殺さずにフィールドコードを書き換える(*)には、
- 一旦フィールドコードを表示させる
Find.Execute
メソッドを用いてフィールドコードを置換する- 再度フィールドコードを非表示にする
という非常に面倒な操作が必要っぽいので、いちいち全てのフィールドコードを表示させなくても済む、というのは、処理速度の関係でちょっと有利になるかも知れない。いや、知らんけど。
*
フィールドコード文字列は、[Field].Code.Text
プロパティで取得することができるが、マクロでこのプロパティを書き換えることによってフィールドコードを書き換えた場合、ルビ情報が一部死ぬ。
詳しくは、
コチラをどうぞ。