人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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初心者ですので、上記の条件を満たし、
そのまま実行できるマクロをお知らせいただければ幸いです。
よろしくご指導くださいませ。

●質問者: taroemon
●カテゴリ:コンピュータ
✍キーワード:ADD SELECT VBA Windows xls
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rakka74
●60ポイント

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」を開き、コピーしたいシートをアクティブにした状態で上のマクロを実行すれば良いように思ったのですが駄目でしょうか?

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ