- ベストアンサー
ルビ削除のマクロの仕様と影響範囲について
- ルビ削除のマクロの仕様とは?マクロを使用してルビを一括で削除する方法について紹介しています。
- PhoneticGuideメソッドとは?ルビを追加したりするメソッドについて説明しています。
- ルビ削除マクロの注意点:ルビだけでなく他のフィールドコードにも影響する可能性があるため、注意が必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 そのコードを書いたWendy02です。どうもです。(^^; >最初に載せたURL先のマクロ内容を、どのように変更をしたらルビ以外 >のフィールドコードを対象から外すことが出来るのでしょうか。 今、掲示前のコードをみると、元は、そのための考慮はされていました。そのURLのご質問者さんの元のドキュメントの大きさなどを考慮して、たった判別する1行なのですが、極力、省メモリで書いたのです。 元のコードは、こういう内容です。 Sub orgFuricanaClear() Dim f As Variant With ActiveDocument For Each f In .Fields If InStr(f.Code.FormattedText.Text, "\up") > 0 Then f.Select With Selection .Range.PhoneticGuide "" End With End If Next End With End Sub >PhoneticGuide フィールドコード側が、私の勘違いでなければ、\upというスイッチが入りますので、それが判定できるものだと思っています。 >これは「 PhoneticGuide "" 」がルビだけを対象にしているのではないメソッドだからなのでしょうか? もしかしたら、東アジアバージョンのみにしかなく、ユニバーサルに存在するフィールドコードとのマッチング(整合性)については、考慮されていないのかもしれません。
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
enunokokoro様 こんばんは。 いつもタイミングよくサポートしていただき、この場を借りて、改めて御礼申し上げます。 >質問文に載せたURL先でのバージョンはWord2000ですが、Word2002以降 >との違いはあるのでしょうか? この件に関してはありませんが、そのURL先の内容では、Word2000とWord2002以降の違いは、検索や置換に影響があります。フィードコードを表示させないと検索できません。Word2000 は、マクロとしても、他にも簡単な部分で違うところがあります。どうやら、Excelとは違い、Wordは、Word2000とWord2002以上では、かなり違いがありそうです。 "\* jc2" は、私のほうも修正しておきました。ありがとうございました。私は、人にはいくつかの本を薦めるくせに、実は、Wordに関する資料なんていうのは、ほとんどないに等しいのです。かろうじて、「Office 97プログラマーズガイド」程度です。(^^; 今回のマクロの周辺に関しては、一応、この後は、オン・デマンドにさせていただきます。 ところで、Wordのマクロは、COMアドインが多いので、結構、この先、困ることが多くなるのではないか、と思っています。まさか、あまり先走って、VSTO(旧Develper)なんて高いものを買うのは、散財になってしまうので、しませんが、さりとて、VB.Net も、いまひとつ、勉強する気が起こらないので、先行きの見通しが暗いです。 それと、少し、Word VBAも休んでいると分からなくなってしまいます。鈍らない程度には、やっていないと、本当に忘れます。
お礼
再度の回答ありがとうございます。 Word2000とWord2002以降のマクロの違いは確かに感じています。 ルビの設定するマクロでも、Word2000用のマクロを使うと動作が異常に なることがあったり、作業ウィンドウや描画キャンバスの関係での違い があったりするようですから。 WordのマクロはExcelほど情報量が無いので、ここでWendy02様が回答を しているものを参考にしたりして、ぼちぼち利用してり勉強したりして います。 OfficeはExcelが基本になっているようで、Wordなどはおこぼれ扱いで あるので、勉強するのも大変ですから、私もあまり手を出さないように しています。 基本的なところは理解ができましたので、今回の質問についてはこれで 締め切らせていただきます。 Wendy02様が今後も活躍されますよう願いつつ、お礼申し上げます。
お礼
早速の回答ありがとうございます。 いつもマクロ関係では勉強させていただいており、今回も勉強のつもり でお気に入りに入れていた質問内容を、いろいろ試す段階で疑問に思う ことがあり、珍しく質問しました。 >東アジアバージョンのみにしかなく、ユニバーサルに存在するフィールドコード >とのマッチング(整合性)については、考慮されていないのかもしれません。 これは確かに考えられますね。 フィールドコードそのものはユニバーサルに通じるWordの機能なので、 それを利用したルビについては PhoneticGuide を用意していても削除 することにはあまり考慮したものではないのかもしれませんね。 今回の回答も本当に勉強になりました。今後も何かとお世話になるかも しれませんがよろしくお願いします。
補足
回答している私としても反省する部分ですが、私のWordのバージョンは Office XPにあるWord2002です。 質問文に載せたURL先でのバージョンはWord2000ですが、Word2002以降 との違いはあるのでしょうか? それから >フィールドコード側が、私の勘違いでなければ、\upというスイッチ >が入りますので、それが判定できるものだと思っています。 これについて今試してみると、数式エディタの変わりに作成した数式の 一部が解除されてしまいました。\upスイッチで判別させるのは注意が 必要なようです。 そこでWord2002のルビ機能を使用したときに入る"\* jc2"を "\up"の 替わりにしても良いようですね Sub orgFuricanaClear() Dim f As Variant With ActiveDocument '一部変更 For Each f In .Fields If InStr(f.Code.FormattedText.Text, "\* jc2") > 0 Then f.Select With Selection .Range.PhoneticGuide "" End With End If Next End With End Sub これでルビだけを対象にすることは可能なようです。 ただし、ルビ部分を太字や斜体にするために"\* jc2"を削除していると 意味がないですが、私が通常使う分にはこちらのほうが使い勝手が良い ようです。 実はこの質問を立ち上げた理由の一つに、フリーで紹介しているのWord のアドインテンプレートを利用すると、ルビ以外のフィールドコードが 解除されるために、質問文のURL先で紹介しているマクロと同じもので 作成しているのではないかと思っていまして、今回のことをきっかけに 自分用のマクロを用意しておこうと思ったことがきっかけです。 もっと使い勝手が良いものを思いつきましたら、わがままな補足ですが マクロを載せていただくと嬉しいです。 今回の回答も、今後の使用においてとても役にたつものだったので回答 をしてくださり、嬉しくなりました。本当にありがとうございました。