EXECEL VBAについての質問です。


最初に特定のブック(以下「既存ブックver2.4.xls」とします)を開いておき、
①新しいブックを開く
②「既存ブックver2.4.xls」でアクティブ状態になっているシートを新しいシートにコピーする
というマクロを作りたいです。

Workbooks.Add
Windows("既存ブックver2.4.xls").Activate
Sheets("特定のシート").Select
Sheets("特定のシート").Copy Before:=Workbooks("Book1").Sheets(1)

ここで特に問題となるのが、2行目の「既存ブックver2.4」の「ver2.4」が、
頻繁に変わってしまうので、「既存ブック」という言葉だけに反応して、
アクティブにする方法がわからないということ、
上記マクロでは3、4行目に「特定のシート」と指定していますが、
②にあるように「既存ブック」内でアクティブ状態になっているシートを、
自動的に新規ブックにコピーしたいのです。

上記のマクロを中心にどのように変更したら良いでしょうか?
あるいはもっと良い方法はありますか?
当方VBA初心者ですので、上記の条件を満たし、
そのまま実行できるマクロをお知らせいただければ幸いです。
よろしくご指導くださいませ。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/04/29 01:12:05
  • 終了:2006/04/29 04:04:37

回答(1件)

id:rakka74 No.1

rakka74回答回数19ベストアンサー獲得回数12006/04/29 03:23:00

ポイント60pt

http://www.hatena.ne.jp/

URLはダミーです。


Dim srcBook As Workbook

Set srcBook = ActiveWorkbook

Dim destBook As Workbook

Set destBook = Workbooks.Add

srcBook.ActiveSheet.Copy Before:=destBook.Sheets(1)

により、アクティブなブック内のアクティブなシートが、新規ブックにコピーされます。

「既存ブックver2.4.xls」を開き、コピーしたいシートをアクティブにした状態で上のマクロを実行すれば良いように思ったのですが駄目でしょうか?

id:taroemon

完璧に望んだとおりにできました。

ありがとうございました。

2006/04/29 04:03:48

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません