図形のテキストの文字あふれを解消する

テキストボックスなどの図形では、中のテキストがあふれて隠れていることがあります。一見して気づきにくいこともあるので、目視で確実に検出するのは困難です。

そうした文字あふれ(オーバーフロー)図形を一括して検出したり対策したりするマクロを紹介します。

図形中のテキストの文字あふれ対策マクロ

Sub 図形のテキストオーバーフローを検出()
    f_chkOverFlow ActiveDocument.Shapes
End Sub

Private Sub f_chkOverFlow(ITMS As Object)

    Dim oShp As Shape
    
    For Each oShp In ITMS
        If oShp.Type = msoGroup Then
            f_chkOverFlow oShp.GroupItems
        Else
            If oShp.TextFrame.Overflowing Then
                'オーバーフロー図形の処理
                oShp.TextFrame.AutoSize = True
                'oShp.Name = "_OVERFLOW" & oShp.Name
            End If
        End If
    Next oShp    
End Sub

グループ化された図形に対応するため、再帰処理を使っています。再帰処理については以下のトピックを参照してください。

文字あふれの検出

Wordの図形には、TextFrame.Overflowing という便利なプロパティがあります。図形の文字あふれを検出できます。

文字あふれの対策

検出した文字あふれの図形の対処として2例を挙げています。

oShp.TextFrame.AutoSize = True

文字あふれを一括解消できる方法です。該当する図形について、[テキストに合わせて図形のサイズを調整する]の指定を有効にします。

文字が収まるように図形のサイズが変化するので、実行後に位置などを適宜調整します。

oShp.Name = "OVERFLOW" & oShp.Name

文字あふれの検出だけする方法です。該当する図形の名前を変えます。

[選択]-[オブジェクトの選択と表示]で表示される一覧上で該当図形を選別でき、個別に文字サイズの変更などの対応ができます。

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