Sub バックアップ作成()
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")

FSO.CopyFile CurrentProject.FullName, "C:\test.mdb"
Set FSO = Nothing
End Sub

このコードを実行すると、同じファイルがあってもエラーになりません。

Sub DiskOprate4()
MkDir "C:\バックアップ"
End Sub
なら同名のフォルダがあればエラーになります。


ファイルはエラーにならないがフォルダならエラーになるのでしょうか?
それともFSOというのを使うとエラーにならないのですか?

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんばんは。



FSOと同じ条件するか、VBAのコマンドを同じ条件にして、比較しないと質問の論理が通らないと思います。

これで、エラーではなくて、エラーメッセージが返されます。
それは、仕様ですから、Dir関数で回避するなりすればよいと思います。

Sub CreateFolderDemo()
  Dim fso As Object, f As Object
  Const myFOLDER = "C:\バックアップ"
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.CreateFolder(myFOLDER)
  MsgBox f.Path
End Sub

しかし、ファイルのCopyというなら、こういうことになりませんか?
何か、ご質問自体が混乱しているように思います。

>このコードを実行すると、同じファイルがあってもエラーになりません。

>Sub バックアップ作成()
>Dim FSO As Object
>Set FSO = CreateObject("Scripting.FileSystemObject")
>
>FSO.CopyFile CurrentProject.FullName, "C:\test.mdb"
>Set FSO = Nothing
>End Sub

上記のコードが少しおかしいけれども、この同じようなプログラムというなら、

Sub Insideバックアップ作成()
Dim strFLName As String
Dim strFname As String
Const myFOLDER = ""C:\バックアップ"
  strFLName = CurrentProject.FullName
  strFname = CurrentProject.Name
  FileCopy strFLName, myFOLDER & "\" & strFname
End Sub

ヘルプに書いてあるように、
「既に開いているファイルに対して、FileCopy ステートメントを実行しようとすると、エラーが発生します。」
仮に、コピー先に同じファイルがなくても、エラーが出ます。それも仕様と言えばそうですが……。

こういうことをお聞きになりたいのですか?もし、そうでないのなら、無視してください。
    • good
    • 0
この回答へのお礼

すいません。 自分自身よくわからないまま質問していたと思います。
もっと勉強してみたいと思います。参考になりました。

お礼日時:2009/05/27 20:57

FSOの解説書の「CopyFile」の解説にちゃんと解説有ります。


第3引数が上書きオプションで、TRUEは上書きする、です。
同じフォルダに、同名(同種の)ファイルが存在するなんて、おかしいと思わなきゃ。そしてFSOの CopyFileの解説書(部分)を見る。
Googleででも「FSO CopyFile」で照会すると
http://officetanaka.net/excel/vba/filesystemobje … などの
の解説が有る。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/05/26 22:15

CopyFile メソッド


http://msdn.microsoft.com/ja-jp/library/cc428016 …

上記ページに書かれているとおり、
CopyFileメソッドはoverwriteフラグがtrue(既定値)だと
既存ファイルを上書きし、エラーは発生しません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/05/26 21:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング