« Rangeの範囲指定まとめ | トップページ | 列番号を英文字に変換してRangeプロパティに使う »

2010年3月 1日 (月)

VBAでセルの高さと幅を自動調節する

手動で、セルの高さと幅を自動調節するには
セルとセルの境界線にマウスのカーソルを移動させ
下の画像のカーソルになったらダブルクリックします。

例えば、
A列を自動調整したい場合は
A列とB列の間の境界線をダブルクリックします。
Vba20100301a

1行目の高さを自動調整したい場合は
1行目と2行目の間の境界線をダブルクリックします。
Vba20100301b

VBAで自動調節するときは
AutFit メソッドを使います。
とりわけ説明することもないので
そのままコードを羅列します。

列幅を自動調整するコード:

Sub macro100301a()
'列幅を自動調整する
    Columns("A").AutoFit
End Sub

いちいち範囲を指定するのがめんどくさいような、
1回だけの作業ならこれでもいいのではないでしょうか。

すべての列幅を自動調整するコード:

Sub macro100301b()
'すべての列幅を自動調整する
    Columns.AutoFit
End Sub

行の自動調整も同様です。

行高さを自動調整するコード:

Sub macro100301c()
'行高さを自動調整する
    Rows(1).AutoFit
End Sub

すべての行高さを自動調整するコード:

Sub macro100301d()
'すべての行高さを自動調整する
    Rows.AutoFit
End Sub

次に、Rangeを使って範囲を指定します。

Range("A1:C3").AutoFit

で実行すると次のようなエラーになります。
Vba20100301c

正しくは次のコードのようにしてください。

Rangeを使ってセルの高さ幅を自動調整するコード:

Sub macro100301e()
'Rangeを使って
'高さと幅を自動調整する
    Range("A1:C5").Rows.AutoFit
    Range("A1:C5").Columns.AutoFit
End Sub

最後に、UsedRangeを使って
使用しているセルの高さ幅の自動調整をします。

UsedRangeを使ってセルの高さ幅を自動調整するコード:

Sub macro100301f()
'使っているセルの高さと幅を自動調整する
    With ActiveSheet.UsedRange
        .Rows.AutoFit
        .Columns.AutoFit
    End With
End Sub

実行前のシートの状態
Vba20100301d

実行後のシートの状態
Vba20100301e

使用しているRange("A1:D4")の範囲のセルの
高さと幅が自動調整されました。

|

« Rangeの範囲指定まとめ | トップページ | 列番号を英文字に変換してRangeプロパティに使う »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: VBAでセルの高さと幅を自動調節する:

« Rangeの範囲指定まとめ | トップページ | 列番号を英文字に変換してRangeプロパティに使う »