【Word VBA】カーソル位置の数字にコンマを挿入するWordマクロ(その2)

2015年3月7日

前回の記事「【コード】カーソル位置の数字にコンマを挿入する(その1)」からの続きです。

3桁毎にコンマを入れるために簡単な方法があります。

それは、Format関数を使う、ということです。

シンプルなマクロになりますが、文字書式を保持できないという欠点があります。

このマクロでできること

カーソルが置かれた数字に3桁毎にコンマを挿入します。

このマクロでできないこと

文字書式を保持できません。

例えば、以下のようになります。

(実行前)

桁区切り

(実行後)

桁区切り

(実行前)

桁区切り

(実行後)

桁区切り

Wordの癖ですね。

1文字目の文字書式が全体に反映された結果、すべて赤文字になってしまいました。

【コード】カーソル位置の数字にコンマを挿入する(その1) では、ワイルドカードを用いた置換になっているので、文字書式が保持されます。

マクロの解説

Format(myRange.Text, "#,##0") にて、3桁毎にコンマを挿入しています。

"#,###"とすると、対象とする文字列が0の場合に文字列が削除されてしまいますから注意が必要です。

また、"000000000" のようにゼロが連続したものだと、"0" となってしまいます。

いずれにしろ、対象箇所を人間が特定してその上で実行する前提のマクロです。

マクロ


Sub Format関数を用いて数字3桁ごとにコンマ挿入()

 Dim myRange As Range
 
 Set myRange = Selection.Range

 myRange.Expand Unit:=wdWord
 
 myRange.Text = Format(myRange.Text, "#,##0")
 
 'Rangeオブジェクトの解放
 Set myRange = Nothing
 
End Sub

-コード
-, ,