Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » シート全体にShrinkToFit

動作検証バージョン:Windows版Excel(バージョン1904 ビルド11629.20214)

「vba selection.shrinktofit シート全体」
という検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。

Rangeオブジェクトに用意されているShrinkToFitプロパティを使うと、VBAから[セルの書式設定]ダイアログボックス-[配置]タブ-[文字の制御]-[縮小して全体を表示する]チェックボックスをOn/Offできます。

この処理をシート全体に行うには、具体的にどのようなコードを書けばいいのかを探していた方による検索でしょう。

縮小して全体を表示する設定をシート全体に行うサンプルマクロ

以下のSubプロシージャを実行すると、アクティブシートの全セルに対して、縮小して全体を表示する設定が行われます。
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

「Cellsプロパティ」の記事一覧

検索


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

.