【VBAリファレンス|実務向け】Wordで「3桁以上の囲い文字」を自由自在に操るテクニック

スポンサーリンク

導入:なぜ標準機能では3桁の囲い文字が作れないのか?

Wordの標準機能である「囲い文字」は、実は「2桁まで」という制限があります。資料作成中に「100」や「123」といった数字を丸で囲みたい場面は意外と多いものですが、メニューから操作しても入力できないため、諦めて図形描画で作成している方も多いのではないでしょうか。
しかし、Wordの「フィールドコード」という仕組みを理解すれば、3桁どころか4桁以上の数字であっても、見栄え良く囲い文字を作成することが可能です。今回は、この「裏技」的な手法を解説します。

基礎知識:フィールドコードとは?

Wordの「囲い文字」機能は、内部的に「EQフィールド」という数式作成用のプログラムコードで動いています。通常は非表示になっていますが、ショートカットキー操作でこのコードを直接書き換えることで、標準機能の制限を突破できるようになります。

実装/解決策:3桁の囲い文字を作成する手順

以下のステップで進めます。
1. まずは「99」など、適当な2桁の数字で囲い文字を通常通り作成します。
2. 作成した囲い文字を選択し、[Alt]+[F9]キーを押して「フィールドコード」を表示させます。
3. コード内の数字を「100」などに書き換えます。
4. 数字を選択して「フォント設定」から文字幅を縮小し、丸からはみ出さないように調整します。

サンプルプログラム:VBAで一気に自動生成する

手動操作は手間がかかるため、頻繁に利用するならVBAで自動化するのが一番です。以下のコードは、選択した範囲の数字を、指定した囲い記号で囲い文字にする汎用的なマクロです。

Sub CreateEnclosedNumber()
    ' 選択範囲の文字列を囲い文字にするVBA
    Dim targetText As String
    
    ' 選択範囲が文字列でない場合は終了
    If Selection.Type <> wdSelectionIP And Selection.Type <> wdSelectionNormal Then Exit Sub
    targetText = Selection.Text
    
    ' フィールドコードを挿入して囲い文字を作成
    ' EQ \o\ac(○,数字) という形式でコードを生成します
    Selection.Fields.Add Range:=Selection.Range, _
        Type:=wdFieldEmpty, _
        Text:="EQ \o\ac(○," & targetText & ")", _
        PreserveFormatting:=False
    
    ' フォント設定を調整(文字幅を50%に圧縮してはみ出しを防ぐ)
    Selection.Font.Scaling = 50
    Selection.Font.Spacing = -2 ' 文字間隔を狭く調整
    
    ' フィールドコードを非表示(結果を表示)
    ActiveWindow.View.ShowFieldCodes = False
    
    MsgBox "3桁の囲い文字を作成しました!"
End Sub

応用・注意点:現場で役立つ補足

1. 文字幅の調整が肝です
3桁になると、そのままでは丸い枠からはみ出してしまいます。フォント設定の「詳細設定」にある「倍率」を50%〜70%程度に調整するのが美しく見せるコツです。

2. フィールドコードの更新に注意
[Alt]+[F9]を押しても何も変わらない場合、Wordの設定でフィールドコード表示が無効になっていることがあります。もし手動で編集した後に表示が戻らない場合は、再度[Alt]+[F9]を押すか、右クリックメニューから「フィールド更新」を選択してください。

3. 記号の変更
コード内の「○」を「□」や「△」に変えることで、丸以外の囲い文字も簡単に作成可能です。実務で「注意」や「重要」といったマークを自作する際にも重宝しますので、ぜひ活用してください。

タイトルとURLをコピーしました