マクロで列幅も含めて新規シートにコピー
マクロ講座49回
Excel 2013 マクロ講座 49回前半
列幅も含めて新規シートにコピー
今回は、テンプレート用のワークシートに、複数の表のひな形があり、それらを用途に応じてコピーするというケースです。
はじめに、アクティブセルのある表だけを新規シートにコピーするマクロを、
次に、アクティブセルのある表を列幅も含めて新規シートにコピーするマクロを作ります。
(サンプルファイルは、こちらから 2013マクロ講座49回サンプルデータ)
アクティブセルのある範囲は、CurrentRegionで
アクティブセルのある範囲は、CurrentRegionプロパティで取得できます。
アクティブセル領域とは、空白の行及び列で構成される範囲です。
アクティブセル領域とは、空白の行及び列で構成される範囲です。
CurrentRegionプロパティを使うと、アクティブセルの周囲にある表やデータの範囲を取得できます。
ワークシートに、複数の表のひな形があり、そのどちらかをコピーしたいときなどに使うことができます。たとえば、
ワークシートに、複数の表のひな形があり、そのどちらかをコピーしたいときなどに使うことができます。たとえば、
ActiveCell.CurrentRegion.Copyとか、
ActiveCell.CurrentRegion.Selectなどのようにです。
Worksheets.Add メソッド
ワークシートを追加するには、Worksheets.Add メソッドを使います。
新しいワークシート、グラフ シート、またはマクロ シートを作成します。この時新しいワークシートがアクティブ シートになります。
新しいワークシート、グラフ シート、またはマクロ シートを作成します。この時新しいワークシートがアクティブ シートになります。
では、コードを組み立てましょう。
1.アクティブセルのある領域を取得しコピーする
1.アクティブセルのある領域を取得しコピーする
ActiveCell.CurrentRegion.Copy2.アクティブシートの前に新規シートを追加する
Worksheets.Add Before:=ActiveSheet3.追加した新規シートがアクティブシートになるので、アクティブシートに貼り付ける
ActiveSheet.Paste4.以上で貼り付け完了ですが、月を入力することを考慮してセルE1を選択します。
Range("E1").Selectまとめると、
Sub セルのある表だけを新規シートにコピー() ActiveCell.CurrentRegion.Copy Worksheets.Add Before:=ActiveSheet ActiveSheet.Paste Range("E1").Select End Subマクロを実行したところです。貼り付け先を指定していないので、新規シートのA1に貼り付けられました。