これは
選択中のセルを含む現在の範囲だけを対象にして列をAutoFitするためのマクロ。
1行目にタイトルとか書いてあるときにビヨーンとならない。
愛読している某ブログに載っていたネタを自分なりに作ってみた。
コード
Sub SmartAutoFit()
Dim ws As Worksheet, i
With ActiveCell.CurrentRegion
.Select
If MsgBox("Are you OK?", vbOKCancel, "SmartAutoFit") = vbCancel Then Exit Sub
Application.ScreenUpdating = False
Set ws = Workbooks.Add.Worksheets(1)
.Copy ws.Cells(1, 1)
ws.Columns.AutoFit
For i = 1 To .Columns.Count
.Columns(i).ColumnWidth = ws.Columns(i).ColumnWidth
Next
ws.Parent.Close False
Application.ScreenUpdating = True
End With
End Sub
追記
ActiveCell.CurrentRegion
のところを ActiveWindow.RangeSelection
にすれば、
自分で選択したセル範囲だけを対象にするようにもできる。どちらがいいかはお好みで。