Home » Excel VBA Rangeオブジェクト » Excel VBAのShrinkToFitが効かない??

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2409(ビルド18015.20000クイック実行)ベータチャネル

「vba shrinktofit 効かない」
といった検索が、このサイト『インストラクターのネタ帳』で行われていました。

以下のコードのように、

ActiveCell.ShrinkToFit = True

RangeオブジェクトのShrinkToFitプロパティに論理値Trueを指定すると、

[縮小して全体を表示する]がOnの状態になります。

ところが、上記のコードを実行しても、縮小表示にならない場合があるのです。

[スポンサードリンク]

「vba shrinktofit 効かない」
と検索なさった方は、その理由や対策を調べていらしたのでしょう。

ShrinkToFitが効かない理由

縮小して全体を表示するコード

ActiveCell.ShrinkToFit = True

を実行しても、縮小表示されないセルで[セルの書式設定]ダイアログボックスを表示して[縮小して全体を表示する]チェックボックス欄を確認すると、わかり辛いかもしれませんが下図のようにグレー表示になっています。

そして[折り返して全体を表示]チェックボックスがOnの状態になっています。
つまりRange.ShrinkToFitプロパティの設定自体はできているのですが、[折り返して全体を表示]の影響を受けて縮小表示されないのです。

ShrinkToFitが効くようにするサンプルマクロ

以下のようなマクロにすれば、縮小して全体が表示されます。

Sub 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が効かない??

「Excel VBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.
.