2016-08-30 7 views
2

列名を含む最初の行のみが範囲が選択されていても、データが自動的に適合します。行1の列名に基づいてExcelの列の幅を自動的に合わせる

Sheetに必要なシートのハンドルがあるとします。私は、CからFまでの列をオートフィットにします。

Sheet.Range("C1:F1").Columns.AutoFit 

参考:私は手動でリサイズを必要とせずに完全な列名を見たいhttps://msdn.microsoft.com/en-us/library/office/ff820840.aspx

+0

私は分かりません.C1:F1だけを自動フィットしたいのですが、列全体(C:F)にしたいですか? –

+0

データよりも最大の長さを持つため、カラム名の幅に基づいてカラム全体を自動フィッティングします。私はSheet.Range(C:F).Columns.AutoFitを試しました。それはうまくいかなかった。 – newuser

答えて

1

C1:F1から右側の未使用列にセルの値と書式をコピーし、Range.AutoFitを使用します。調整幅を使用して、元の列幅を設定します。

Dim c As Long, cc As Long 
With Worksheets("Sheet1") 
    cc = .Cells(1, .Columns.Count).End(xlToLeft).Column + 1 
    For c = 3 To 6 
     .Cells(1, c).Copy Destination:=.Cells(1, cc) 
     .Columns(cc).AutoFit 
     .Columns(c).ColumnWidth = .Columns(cc).ColumnWidth 
    Next c 
    .Columns(cc).Cells.Clear 
End With 

これは、フォーマットされたヘッダー行のみに基づいて各列幅を調整します。

+0

ありがとうございます。私はまだVBAの初心者です。 cc = .Cells(1、.Columns.Count).End(xlToLeft).Column + 1 – newuser

+0

最初の空の列が右から左に見えることがわかります。空の列は、.AutoFitで列幅を計算するための余白として使用されます。 – Jeeped

+0

ありがとうございました! – newuser

関連する問題