• ベストアンサー

エクセルVBA 開いているブックのコピー

filecopyを使って、ファイルをある場所から別の場所へコピーしたいと思っています。 しかし、コピー元のファイルが開かれていると、エラーが出ていることがわかりました。 FileCopy "C:\xxxxx\B.xls","C:\yyyyy\B.xls" といったコードで、B.xlsが開かれていると、エラーが起こります。 エラーが起こるのはこのコマンドの仕様のようです。 ただし、自分自身(このコードを実行しているファイル)はA.xlsとします。 対象のファイルが開かれていてもコピーするには、どうしたらよいでしょうか?

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

  • ベストアンサー
回答No.1

こんにちは。 エラーになるのは、内部コマンドを使うからでは? Set objFso = CreateObject("Scripting.FilesystemObject") objFso.Copyfile "C:\xxxxx\B.xls","C:\yyyyy\B.xls" Set objFso = Nothing というようにしてみたら、いかがですか?

sukkkiyaki
質問者

お礼

みようみまねでやってみたらできました! 意味はよくわかっていないですが、とりあえず動いたので良しとします。 回答ありがとうございました。

その他の回答 (1)

noname#203218
noname#203218
回答No.2

下記方法でも可能だと思います。ご参考まで。 Workbooks("B.xls").Activate ActiveWorkbook.SaveAs Filename:="C:\yyyyy\B.xls"

sukkkiyaki
質問者

お礼

回答ありがとうございます。 今度試してみますね。