ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【VBA】Excelで特定のセルを非表示にする方法
VBA使用時に特定のセルを非表示にする方法とは
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
VBAでシートをコピーする際に、
セルの高さや幅もコピーすることができます。
列の幅のコピー
まず、列の幅は、一気にコピペできます。
ペースト(貼り付け)時にxlPasteColumnWidthsを指定すれば、OKです。
サンプル
'列の幅をコピペする
Sub CopyWidth()
Const S_SHEET_NAME = "Sheet1" 'コピー元のシート名
'1行目をコピー
Worksheets(S_SHEET_NAME).Range("A1:F1").Copy
'列の幅を貼り付け
Worksheets(D_SHEET_NAME).Cells(1, 1).PasteSpecial (xlPasteColumnWidths)
End Sub
行の高さのコピー
残念ながら、行の高さは列の幅の様に xlPasteRowHeights みたいな感じではできません。
なので、チマチマと1行ずつ RowHeight をコピペする必要があります。
サンプル
Sub CopyWidthHeight()
Const ROW_LAST = 20 ''最終行番号
Const COL_LAST = 70 ''最終列番号
Const S_SHEET_NAME = "Sheet1" 'コピー元のシート名
Const D_SHEET_NAME = "Sheet2" 'コピー先のシート名
' Dim i As Integer
With Worksheets(D_SHEET_NAME)
'行の高さをコピー
For i = 1 To ROW_LAST
.Rows(i).RowHeight = Worksheets(S_SHEET_NAME).Rows(i).RowHeight
Next i
'列の幅をコピー
For i = 1 To COL_LAST
.Columns(i).ColumnWidth = Worksheets(S_SHEET_NAME).Columns(i).ColumnWidth
Next i
End With
End Sub
サンプルシート
最後までご覧いただきありがとうございます。
つぎはこちら
【VBA】Excelフィルタリング後の値を取得する方法
Excelでフィルタリング後の値を別シートに
出力することができます。