2008年12月09日

ワークシートを新規ブックにコピーする

ワークシートを、新しいブックを作成してそのブックにコピーする方法は簡単な記述ですが、かえって分かりにくいこともあるようです。

セミナーの実習時にマクロの記録を使ってVBAでの記述を調べて頂くと、よくそうしたご質問頂きます。
例えばSheet1を新規ブックに移動する処理は、マクロの記録では以下のように記録されます。

Sheets("Sheet1").Copy

Sheet1をコピーしているだけなのに、なぜ新しいブックが出るのだろう? という疑問が出てきます。
Copyというキーワードの上でF1(ヘルプ)を押して、WorksheetsオブジェクトのCopyメソッドを調べてみてください。

ヘルプ説明の解説欄に説明が書かれています。
Copyメソッドは本来引数としてBeforeまたはAfterのいずれかを指定することができますが、その両方を省略した場合は、新規ブックが自動的に作成され、シートはそのブック内にコピーされるようになっています。

マクロの記録は便利な面もある一方、記録されたままでは意味が分からないことや、そのまま実行すると動かないことも少なくありません。記録結果はヘルプ、Web、参考書などで再度正確な意味を調べてからプログラムの中で利用しておくと、次回以降のプログラミングに役立つことが多いように思います。
posted by Three bit com at 10:00| Excel(エクセル)