プロが教えるわが家の防犯対策術!

エクセルのVBAで、フォルダごとコピーしたいのですが…
Dドライブの”TEST"というフォルダを、同じくDドライブに"TEST2"という名前でコピーしたいのです。

Private Sub sakusei_Click()

Dim myFSO As New FileSystemObject
myFSO.CopyFolder "D:\TEST", "D:\TEST2"

End Sub

ではうまくいかないのです。
私は初心者なので調べてもよくわからないので、
有識者の方、是非教えてください。
宜しくお願い致します。

A 回答 (3件)

Visual Basic Editor の [ツール]-[参照設定] で、


"Microsoft Scripting Runtime" にチェックを入れていますか?
    • good
    • 2
この回答へのお礼

ありがとうございました!!
おかげ様でコピーできました。
もっと勉強して回答者の皆さんのように詳しくなりたいです。

お礼日時:2008/04/09 17:55

[イミディエイト]


? FolderCopy("D:\Test", "D:\Test2")
True

で、コピーできたようです。

Public Function FolderCopy(ByVal F As String, ByVal T As String) As Boolean
On Error GoTo Err_FolderCopy
  Dim isOK As Boolean
  Dim fso As Object
  
  isOK = True
  Set fso = CreateObject("Scripting.FIleSystemObject")
  fso.CopyFolder F, T
Exit_FolderCopy:
  FolderCopy = isOK
  Exit Function
Err_FolderCopy:
  MsgBox Err.Description & "( FolderCopy)"
  isOK = False
  Resume Exit_FolderCopy
End Function

Private Sub sakusei_Click()
  Dim myFSO As New FileSystemObject

  myFSO.CopyFolder "D:\TEST", "D:\TEST2"
End Sub

両者の違いは Set文の有無ですね。

Dim fso As FileSystemObject

Set fso = New FileSystemObject
    • good
    • 0

勘違いでした。



単なる参照設定!
    • good
    • 0

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