「vba selection.shrinktofit シート全体」
という検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
Rangeオブジェクトに用意されているShrinkToFitプロパティを使うと、VBAから[セルの書式設定]ダイアログボックス-[配置]タブ-[文字の制御]-[縮小して全体を表示する]チェックボックスをOn/Offできます。
この処理をシート全体に行うには、具体的にどのようなコードを書けばいいのかを探していた方による検索でしょう。
縮小して全体を表示する設定をシート全体に行うサンプルマクロ
以下のSubプロシージャを実行すると、アクティブシートの全セルに対して、縮小して全体を表示する設定が行われます。With Cells
.ShrinkToFit = True
.WrapText = False
End With
End Sub
Cellsプロパティで全セルを表すRangeオブジェクトを取得
拙著『いちばんやさしいExcel VBAの教本』のLesson 59「Rangeオブジェクトを取得するプロパティについて学習しましょう」で、Cellsプロパティについて以下のように書きました。
Cellsプロパティは、引数を指定しないで使うこともでき、この場合すべてのセルを表すRangeオブジェクトが取得できます。
先述のSubプロシージャで使われているCellsプロパティが、この使い方をしている例です。
Sub 縮小して全体を表示する設定をシート全体に行う()
With Cells
.ShrinkToFit = True
縮小して全体を表示する設定はWrapTextの影響も受ける
[縮小して全体を表示する]チェックボックスの設定は、Range.ShrinkToFitプロパティから変更できるのですが、実際にはRange.ShrinkToFitプロパティをTrueに設定しただけでは、縮小して全体を表示されないケースがあります。
Range.WrapTextプロパティの影響を受けるためです。
Range.WrapTextがTrueのまま、Range.ShrinkToFitをTrueにしても、縮小して全体を表示にはなりません。
そのため先述のSubプロシージャでは、Range.WrapTextプロパティをFalseに設定する処理も入れています。
With Cells
.ShrinkToFit = True
.WrapText = False
Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » シート全体にShrinkToFit