• ベストアンサー

excelのファイルコピー

excelvbaでファイルコピーをしようと思っています。 コピーは自分自身のファイルをコピーしようとしています。 ファイル1.xls(自分自身、コピー元) ファイル2.xls(コピーされたファイル) FileCopyを使用し以下のようにやろうとしましたが、書き込みエラーがでてうまくいきませんでした。 エラーメッセージ「実行時エラー '70': 書き込みできません。」 FileCopy "ファイル1.xls", "ファイル2.xls" どのようにすればうまくいくのでしょうか?

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

  • ベストアンサー
  • 820mth
  • ベストアンサー率100% (1/1)
回答No.1

例1: 自分自身、コピー元の ファイル1.xls をExcelで開く時、読み取り専用で開いた時には、 FileCopy 出来るようです。 読み取り専用で開くには、 Excelのファイルを開くメニューのオプション、 VBAの場合、例えば Workbooks.Open FileName:="場所" & "\" & _ "ファイル1.xls", ReadOnly:=True 他には、事前にファイル属性を読み取り専用に変更する方法もあります。 例2: ファイル1.xls をExcelで開く時、書き込み可能の状態で開きたい時は、 FileCopyではなく、コマンドプロンプトの copy コマンドを使用する方法があります。VBAの場合、例えば Shell ("cmd /C copy """ & _ ThisWorkbook.Path & "\" & ThisWorkbook.Name & """ """ & _ ThisWorkbook.Path & "\" & "ファイル2.xls"""), vbHide で出来るようです。 上記はExcel97Excel97,Excel2002で試しています。 開いているBookをコピーしようとしていますので、ExcelやOSの種類等によってはエラーになるかもしれません。 Windows98系の場合、cmd の箇所は command.com になります。

関連するQ&A

専門家に質問してみよう