お世話になっております。
・ワードで算用数字を漢数字に変換する方法又はマクロを探しています。
・希望例: 22→二二、 100→一〇〇等
・以下のマクロを実行しましたが、全く反応がありません。
(マクロについてはずぶの素人です)
Option Explicit
Sub KanToNum()
Dim num As Integer, kan() As Variant
kan() = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九")
For num = 0 To 9
With ActiveDocument.Content.Find
.Text = kan(num)
.MatchByte = False
.Replacement.Text = num
.Execute Replace:=wdReplaceAll
End With
Next num
End Sub
マクロの修正を含めアドバイスをお願いします。
よろしくお願いします。
No.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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
家の中でのこだわりスペースはどこですか?
自分の家で快適に過ごすために工夫しているスペースはありますか? 例)ベランダでお茶を飲むためのカフェテーブル ゲーミングに特化したこだわりのPCスペース
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
縦書きにした時の数字を漢数字にしたい
Word(ワード)
-
漢数字を算用数字に変換したい(緊急)
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
メッセージボックスのOKボタ...
-
エクセルに張り付けた写真のフ...
-
一つのTeratermのマクロで複数...
-
ピボットテーブルでの毎回可変...
-
エクセルのマクロをセルの値に...
-
wordを起動した際に特定のペー...
-
ExcelVBAでPDFを閉じるソース
-
Excel_マクロ_現在開いているシ...
-
Excel マクロでShearePoint先の...
-
エクセルの改ページを行ごとに...
-
Excel VBAからAccessマクロを実...
-
ソース内の行末に\\
-
VBAにて別ワークブック上の実行...
-
Excelで特定の文字のところで自...
-
TERA TERMを隠す方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルに張り付けた写真のフ...
-
ExcelのVBA。public変数の値が...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
特定文字のある行の前に空白行...
-
Excel VBAからAccessマクロを実...
-
wordを起動した際に特定のペー...
-
マクロ実行時、ユーザーフォー...
-
エクセルで別のセルにあるふり...
-
マクロで空白セルを詰めて別シ...
-
ソース内の行末に\\
-
Excel_マクロ_現在開いているシ...
-
ダブルクリックで貼り付けた画...
おすすめ情報