「vba shrinktofit 効かない」
といった検索が、このサイト『インストラクターのネタ帳』で行われていました。
以下のコードのように、
ActiveCell.ShrinkToFit = True
RangeオブジェクトのShrinkToFitプロパティに論理値Trueを指定すると、
[縮小して全体を表示する]がOnの状態になります。
ところが、上記のコードを実行しても、縮小表示にならない場合があるのです。
「vba shrinktofit 効かない」
と検索なさった方は、その理由や対策を調べていらしたのでしょう。
ShrinkToFitが効かない理由
縮小して全体を表示するコード
ActiveCell.ShrinkToFit = True
を実行しても、縮小表示されないセルで[セルの書式設定]ダイアログボックスを表示して[縮小して全体を表示する]チェックボックス欄を確認すると、わかり辛いかもしれませんが下図のようにグレー表示になっています。
そして[折り返して全体を表示]チェックボックスがOnの状態になっています。
つまりRange.ShrinkToFitプロパティの設定自体はできているのですが、[折り返して全体を表示]の影響を受けて縮小表示されないのです。
ShrinkToFitが効くようにするサンプルマクロ
以下のようなマクロにすれば、縮小して全体が表示されます。
ActiveCell.WrapText = False
ActiveCell.ShrinkToFit = True
End Sub
[折り返して全体を表示]がOnになっていると、すなわちRange.WrapTextプロパティがTrueに設定されていると、
Range.ShrinkToFitをTrueに設定しても、縮小表示にならないのです。
Range.ShrinkToFitをTrueに設定するだけでなく、Range.WrapTextをFalseに設定処理を行うことで
ActiveCell.WrapText = False
縮小表示になります。
最終更新日時:2024-09-05 21:11
Home » Excel VBA Rangeオブジェクト » Excel VBAのShrinkToFitが効かない??