マクロで列幅も新規シートにコピー(後半)
Excel 2013 マクロ講座 49回後半マクロ講座
列幅も含めて新規シートにコピーするマクロ
テンプレート用のワークシートに、複数の表のひな形があり、それらを用途に応じてコピーするというケースです。
前頁では、アクティブセルのある表だけを新規シートにコピーするマクロをつくりました。
ここでは、アクティブセルのある表を列幅も含めて新規シートにコピーするマクロを作ります。
(サンプルファイルは、こちらから 2013マクロ講座49回サンプルデータ)
アクティブセルのある表を列幅も含めて新規シートにコピーするマクロ
サンプルのような列幅を設定している表のコピーの場合、列幅も貼り付けたいのですが、Excelで形式を選択して貼り付けで行っている列幅の貼り付けは、Paste メソッドでは貼り付けることができません。
列幅(形式を選択して貼り付けで行うはりつけ)の場合には、貼り付けたい場所にあるRangeオブジェクトに対して「PasteSpecial」メソッドを使います。
列幅(形式を選択して貼り付けで行うはりつけ)の場合には、貼り付けたい場所にあるRangeオブジェクトに対して「PasteSpecial」メソッドを使います。
「Paste」引数に設定可能な項目の一覧表です。
列幅をA1セルに貼り付けたいときは、定数xlPasteColumnWidthsを使います。
列幅をA1セルに貼り付けたいときは、定数xlPasteColumnWidthsを使います。
Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
先のマクロコードに列幅コピーのコードを追加しましょう。
ワークシートは右(後ろ)に追加します。
ワークシートは右(後ろ)に追加します。
Sub セルのある表を列幅も含めて新規シートにコピー() ActiveCell.CurrentRegion.Copy Worksheets.Add After:=ActiveSheet ActiveSheet.Paste Range("A1").PasteSpecial Paste:=xlPasteColumnWidths Range("E1").Select End Sub
セルのある表を列幅も含めて新規シートにコピーマクロを実行したところです。