動作検証バージョン:Windows 11 Home + 64bit Excel(バージョン2307 ビルド16626.20000 クイック実行)
「ExcelVBA autofit シート全体」
といった検索で時折アクセスがあります。
セルの幅や高さを適切なサイズにするRange.AutoFitメソッドを、
シート全体に適用するにはどのようなコードを書けばいいのか、調べていらしたのでしょう。
[スポンサードリンク]
もしかしたら、
Cells.AutoFit
を実行して「実行時エラー'1004': RangeクラスのAutoFitメソッドが失敗しました。」エラーが発生したのかもしれません。
この挙動については、ヘルプに
Range オブジェクトは、行または行の範囲、または列または列の範囲である必要があります。それ以外の場合、このメソッドはエラーを生成します。
と書かれているとおりです。
アクティブシートの全列をAutoFitするサンプルマクロ
アクティブシートのすべての列をAutoFitするのなら、以下のようなマクロです。
Sub 全列をAutoFitする()
Columns.AutoFit
End Sub
Columns.AutoFit
End Sub
拙著『いちばんやさしいExcel VBAの教本』の「Lesson 63 行全体・列全体を表すRangeオブジェクトについて学習しましょう」でも解説している、Columnsプロパティで取得できる全列を表すRangeオブジェクトに対してAutoFitメソッドを実行すれば、全列のAutoFitが可能です。
アクティブシートの全行をAutoFitするサンプルマクロ
すべての行をAutoFitするのであれば、以下のようなマクロです。
Sub 全行をAutoFitする()
Rows.AutoFit
End Sub
Rows.AutoFit
End Sub
Rowsプロパティで取得できる全行を表すRangeオブジェクトのAutoFitメソッドで、全行のAutoFitができます。
アクティブシート全体をAutoFitするサンプルマクロ
アクティブシート全体を(行も列も)AutoFitするのであれば、以下のようなマクロです。
Sub アクティブシート全体をAutoFitする()
Columns.AutoFit
Rows.AutoFit
End Sub
Columns.AutoFit
Rows.AutoFit
End Sub
最終更新日時:2024-03-25 16:09
[スポンサードリンク]
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » VBAでシート全体をAutoFitするには