テンプレシートの行幅をコピーしたい
エクセル上で原本シートの行幅をコピーしたいケースがあります。
行幅をコピーするマクロは、簡単なコードで表せます。どしどしコピペで使いましょう。
テンプレシートの行幅をコピペするサンプルコード
列幅をコピペはエクセルが貼付オプション(形式を選択して貼付)を用意してくれていますが、
行幅の場合は用意されていません。自作する必要があります。
'■フォーマットシート(原本シート)から列幅をコピーする Public Sub Call_CopyPaste_RowHeight() Dim ws As Worksheet '原本シート Set ws = ThisWorkbook.Worksheets("原本") '■1行目から5行目まで(i=1 to 5)を原本シートから行の高さをコピーする Dim i As Long For i = 1 To 5 Rows(i).RowHeight = ws.Rows(i).RowHeight Next i End Sub
注意点
- 今回は コピペされる側は Rows(i) と記載していますが、
実際にはシート名やブック名を記載すべきです。 例) ws.Rows(i) / ActiveSheets.Rows(i) 等
マクロ初級者必読-ワークシート名を変数にSetし、短い名前で利用する
マクロ初級者必読-ワークブック名を変数にSetし、短い名前で利用する - 上記を指定していない為、ActiveSheet(前面に表示されているシート)に貼りつけしています。
- 最終行まで貼付する場合はLastRow処理を入れましょう。
- もしくはマジックナンバーではなく定数が望ましいです。
関連記事
新しいワークシートを作成時、処理を行う【NewSheet】【ExcelVBA】
ExcelVBAマクロ「指定したキーワードをクリップボードへコピーする」をパーツ化する
ExcelVBAマクロ「クリップボードへのコピーが文字化けする対策」
ExcelVBAマクロ「テンプレートシートの列幅をコピーする」【ExcelVBA】
コメント