« Break a character string with a comma to make it less than or equal to the specified number of characters | トップページ | Display strings on the right side of cells »

2018年7月 8日 (日)

セルに入力した文字をはみ出して表示させる

Excelでセルに長い文字列を入力した時
右側のセルに何も入力されていなければ
下の画像のA1セルのように
文字が右側にはみ出して表示されます。
Vba20180708a

A1からA3セルには同じ文字列が入力されています。
右側のセルに何も入力されていなくても
A2セルのように
文字がはみ出して表示されなくなることがあります。

これは、セルの書式設定で
「折り返して全体を表示する」に
チェックが入っている時、かつ
セルの高さが自動で調整されない時になります。

セルの高さが不足していて
文字列が表示されずに途中で切れてしまいます。
この状態で印刷すると文字が切れて印刷されるので問題です。

A2セルの高さを自動調整した状態がA3セルになります。
A3セルでは文字列が折り返して表示されています。

先ほどの画像のA1セルのように右側にはみ出して表示させたい。
こんな時に使えるマクロを作りたいと思います。

コードはこちら

文字をはみ出して表示させるコード:

Sub macro180708a()
'文字をはみ出して表示させる
'マクロを実行する前に
'調整したい 範囲を選択しておく

    Dim obj As Object
   
    For Each obj In Selection
        'セルの結合なし
       If obj.MergeCells = False Then
            With obj
                '折り返し て表示しない
                .WrapText = False
                '縮小して表示しない
                .ShrinkToFit = False
            End With
             ' セルの高さ自動調整
            Rows (obj.Row).EntireRow.AutoFit
        End If
    Next
   
End Sub

下の画像の状態で上記のコードを実行
Vba20180708b

実行結果:
Vba20180708c

今回の記事を書いていて気付いたのですが
結合したセルで「折り返して表示する」を設定している場合、
セルの高さ自動調整では1行分に調整されてしまいます。
ですので上記コードでは
結合していないセルのみ対象としました。

|

« Break a character string with a comma to make it less than or equal to the specified number of characters | トップページ | Display strings on the right side of cells »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: セルに入力した文字をはみ出して表示させる:

« Break a character string with a comma to make it less than or equal to the specified number of characters | トップページ | Display strings on the right side of cells »