- ベストアンサー
ワードで算用数字を漢数字に変換するマクロについて
- ワードで算用数字を漢数字に変換するマクロの修正方法やアドバイスを教えてください。
- 22を二二、100を一〇〇に変換する方法やマクロについて探しています。
- 現在試したマクロでは全く反応がなかったので、問題の修正方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>・ワードで算用数字を漢数字に変換する方法又はマクロを探しています。 たぶん、#1さんの引用先のコードは、マクロを探しているという目的なら十分かもしれません。ただし、その作者の方は、こうしたまな板の上に上げられることが望んではいないでしょうけれども、一度、点検したほうがよいのではないか、と思います。Word VBAは、情報が少ないので、自画自賛になり易いです。それは、私も含めてですが。 マクロを勉強しているということで、ご質問で出されたコードの問題点はどこにあるのか、ということでしたら、少し、コメントさせていただきます。 なお、 >(マクロについてはずぶの素人です) ここでは、Word VBAは、大勢の方も素人だと思います。少し分かるようになると、誰も自信をもって教えているわけです。ただ、掲示板では、あまり根拠のない指摘とExcel VBAのコードをそのまま転用することだけは遠慮してもらいたい所です。 あくまでも、質問上のことですから、書かせてもらいますが、マクロの修正の前に、そのコードは、何かの見本があるでしょうか?みなさん、Word VBAでは同じようなスタイルになるような気がします。Excel VBAの影響でしょうか?Excel VBAのようには書かないほうがよいと思います。 大きくわけて2点あります。 ActiveDocument.Content. 対象オブジェクトが違っています。置換は文字を対象としているのに、Rangeを対象にしているようです。もし、文字を対象にするなら、Selection を使うか、ActiveDocument.Content なら、一旦、Select してから、Selection で置換したほうがよいです。 次に、 .Text = kan(num) .MatchByte = False .Replacement.Text = num .Execute Replace:=wdReplaceAll Word VBAは、Find メソッドは、そんなに省略してはいけないのです。省略することがよいとExcel VBAでは間違って覚える人もいますが、Word VBAでは違います。Wordは、なるべくプロパティは省略しないほうがよいです。それをすると、昨日動いていたマクロが、今日は動かないということが出てきます。 私なら、簡単なことだけれども、格好が悪くても、オーソドックスな書き方をします。それが無難なのです。今回は、少し削りましたが、プロパティ全部を書いてもよいと思います。思わぬことがあるので、私は、最初、省略しないことにしています。 '// Sub Kan2Num() Dim num As Integer Dim kan() As Variant kan() = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九") For num = 0 To 9 Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = num .Replacement.Text = kan(num) .Forward = True .Wrap = wdFindContinue .MatchWholeWord = False .MatchByte = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Replace:=wdReplaceAll Next End Sub
その他の回答 (1)
- s-uzen
- ベストアンサー率65% (2051/3118)
Word:算用数字⇒漢数字変換マクロ http://www.hi-ho.ne.jp/tomita/tips/tips_wd_002.html
お礼
お世話になっております。 ご丁寧なアドバイスをいただき誠にありがとうございます。