Excel VBAでシートをコピーする:Copy

VBA でシートをコピーするときは、Copy メソッドを使用します。ここでは、Copy メソッドの使い方について説明します。

Copy メソッドの使い方

Copy メソッドの構文は以下の通りです。

Copy メソッドではコピーしたシートを指定したシートの前、あるいは後ろに挿入するかを引数で指定します。

引数のシートを指定するときは Before や After の後にコロンとイコール := をつけて指定します。この := は、引数の順序に関係なく、特定の引数へ値を設定するときに用います。また、Before と After を同時に使用することはできません

もし引数に何も指定しなかった場合は、新規のブックにコピーされます。

以下は、Sheet1 を Sheet2 の後の位置にコピーする例です。

この場合、コピーされたシート名「Sheet1 (2)」のような形で自動的に名付けられます。

シートを先頭にコピーする

以下は、Sheet1 を先頭の位置にコピーする例です。

引数の Before に1番目のシートを指定することで、先頭の位置にシートをコピーすることができます。

シートを末尾にコピーする

以下は、 Sheet1 を末尾の位置にコピーする例です。

まず、Worksheets.Count を使用して末尾のシートのインデックス番号を取得しています。そのインデックス番号を利用してシートを取得し、 After の引数に指定することによって末尾の位置にシートをコピーしています。

名前を指定してコピーする

以下は、シートに名前を付けてコピーする例です。この例ではシート名の末尾に日付を付けています。

シートをコピーすると新しくコピーされたシートがアクティブになるので、ActiveSheet.Name で名前を変更してます。上のプログラムを実行すると、Sheet1 がコピーされ「売上データ20160819」のような名前のシートが作成されます。

名前を付けるとき、既に存在するシートの名前を付けようとするとエラーになるので注意してください。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて