こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

excelで最初に開いたファイル名称を覚えておく様な処理は可能ですか?

excelで最初に開いたファイル名称を覚えておく様な処理は可能ですか?
1.最初の処理
(1)A.xlsのファイルを開く
(2)マクロ:2010.xlsのファイルを開く
(3)マクロ:チェックのシートをA.xlsの明細のシートの前に追加
(4)マクロ:チェックのシート名称をコピーした日付と時間のシート名に変更
(5)マクロ:2010.xlsのファイルをディスクトップ上から削除

2.後から追加する処理
(6)B.xlsのファイルを開く
(B.xlsは、A.xlsとは異なるフォルダを作成し、A.xlsの特定のセルの中身の名称でファイル名保存されます。名前が異なるだけでマクロの中身はA.xlsと同じ)
(7)マクロ:2010.xlsのファイルを開く
(8)マクロ:チェックのシートをB.xlsの明細のシートの前に追加
(9)マクロ:チェックのシート名称をコピーした日付と時間のシート名に変更
(10)マクロ:2010.xlsのファイルをディスクトップ上から削除


上記を対応する為に下記の様なマクロ((6)(7)の部分を抜粋)を設定しています。

'2010.xlsのファイルを開く(2010.xlsのファイルは適宜、ディスクトップにコピーされます)
Workbooks.Open FileName:="C:\Documents and Settings\ID\デスクトップ\2010.xls"

'チェックのシートを現在のブックの明細の前にコピーする。

Windows("2010.xls").Activate
Sheets("チェック").Copy before:=Workbooks(1).Sheets("明細")

単独でA.xlsやB.xlsのファイルが開かれている場合には、
上記の対応で問題ないのですが、A.xls、B.xls以外のexcelファイルが開かれていると、
実行時エラーが出てしまいます。
Workbooks(1)の部分で最初に開いたexcelのファイル名称を指定しているのが
影響しているのはわかるのですが、ここの処理をなんとかしたいというおもいです。
つまり、複数のexcelファイルが開かれていて、A.xlsやB.xlsのファイルを後から開いても
エラーがでない様にするには、どの様な処理にしたらよいのか教えて頂きたく。

マクロを実行したexcelのファイル名を覚えておいて、その名前が(1)に置き換わる
様な処理が望まれる処理です。

投稿日時 - 2010-04-08 09:40:53

QNo.5810926

暇なときに回答ください

質問者が選んだベストアンサー

>チェックのシートを現在のブックの明細の前にコピーする。
>Windows("2010.xls").Activate
>Sheets("チェック").Copy before:=Workbooks(1).Sheets("明細")

"現在のブック" が当マクロが書かれているブックなら
Sheets("チェック").Copy before:=ThisWorkbook.Sheets("明細")

投稿日時 - 2010-04-08 10:03:42

お礼

早々に回答頂きありがとうございました。
結果はばっちりでした。m(__)m

投稿日時 - 2010-04-08 11:43:47

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問