前回の記事「【コード】カーソル位置の数字にコンマを挿入する(その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