VBAを使用してフォルダをコピーする方法

このQ&Aのポイント
  • VBAを使用してデスクトップ上のフォルダをコピーする方法について教えてください。
  • 動作しないVBAコードを使用してフォルダをコピーしようとしていますが、何も起こりません。
  • フォルダをコピーしたい場合、VBAのScripting.FileSystemObjectを使用してコードを実行します。
回答を見る
  • ベストアンサー

フォルダをコピー フォルダの中に入れたい FSO

vbaです。よろしくお願いします。 Sub Sample() Dim myFSO As Object Dim MyPath As String MyPath = "C:\Users\ああああ\Desktop\" Set myFSO = CreateObject("Scripting.FileSystemObject") myFSO.CopyFolder MyPath & "コピーしたフォルダーを入れるフォルダー", MyPath & "コピーするフォルダ" Set myFSO = Nothing End Sub こんな感じで、デスクトップにある、"コピーするフォルダ"をコピーして、 デスクトップにある、"コピーしたフォルダーを入れるフォルダー"の中に入れたいのですが 上記のコードを実行しても何も起きません。 コピーしたフォルダーを入れるフォルダーの中身を見ても、空です。 ”コピーしたフォルダーを入れるフォルダー”の中に、"コピーするフォルダ" を入れる方法を教えてください。

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

myFSO.CopyFolder MyPath & "コピーしたフォルダーを入れるフォルダー", MyPath & "コピーするフォルダ" ↓ myFSO.CopyFolder MyPath & "コピーするフォルダ", MyPath & "コピーしたフォルダーを入れるフォルダー" & "\"

wltqnlkzpwczl
質問者

お礼

おっしゃるとおりにしてみたらうまくできました。 ありがとうございました。勉強になりました。

その他の回答 (1)

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

http://www.happy2-island.com/vbs/cafe02/capter00215.shtml 上記URLのVBA記事と比較すると、質問者さんのプログラム記述が間違っているように思えます。

wltqnlkzpwczl
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • 実行時エラー 76 パスが見つかりません。

    VBAのFileSystemObjectでフォルダをコピーしているのですが フォルダ1は問題なくコピーできるのですが 毎回フォルダ2だけは、 実行時エラー 76 パスが見つかりません。 と言うエラーになってしまいます。 Sub Sample() Dim myFSO As Object Dim MyPath As String MyPath = "C:\" Set myFSO = CreateObject("Scripting.FileSystemObject") myFSO.CopyFolder MyPath & "フォルダ2", MyPath & "新フォルダ2" Set myFSO = Nothing End Sub このようなコードなのですが、フォルダ1もフォルダ2も同じコードを使っています。 フォルダ2に関しては容量が10GBくらいありますが、フォルダが重すぎるのが原因でしょうか?

  • エクセルマクロでフォルダのコピーがしたい

    こんにちわ 色々調べてフォルダのコピーはできたのですが、色々いじっていて分からないことが出てきたので質問に来ました。 やりたいことはフォルダをコピーしたいのですが、それぞれ名前を自動で変えようと思い下記(1)を元に下記(2)を作ってみましたが、動きませんでした。 (1)いくつかのサイトを見て動いたマクロ sub test() Dim myFSO As New FileSystemObject myFSO.CopyFolder "C:\test", "C:\test2" End Sub (2)ちょっといじって動かないマクロ sub test() Dim myFSO As New FileSystemObject Dim name As String Dim name2 As String name = "C:\test" name2 = "C:\test2" myFSO.CopyFolder "name", "name2" End Sub 「パスが見つかりません」と出てきたので、読み込んでいないのだとは思うのですが、どうしたら動くかアドバイスをいただきたいです。 よろしくお願いします。

  • 位置の指定をすることは可能ですか?

    VBAでテキストファイルを生成するコードを作ったのですが その際位置の指定をすることは可能ですか? Sub test() Dim myFSO As New FileSystemObject Dim ts As TextStream Dim MyFileName As String Dim MyPath As String MyPath = MyDesktop & "\" MyFileName = "test.txt" Set myFSO = CreateObject("Scripting.FileSystemObject") Set ts = myFSO.CreateTextFile(MyPath & MyFileName, True) CreateObject("Shell.Application").ShellExecute MyPath & MyFileName 'ここで位置の指定をしたい Set ts = Nothing Set myFSO = Nothing End Sub こんな感じのコードは作成しました。 With MyFileName .Top = 100 .Left = 100 End With みたいな感じで位置の指定は可能ですか? APIを使わないと無理ですか?

  • VBA 一つのフォルダの中のフォルダ名とファイル名

    一つのフォルダの中のフォルダ名とファイル名を取得したい場合は ************************************** Sub test() Dim MyFileName As String Dim MyFolderName As String Dim myFSO As Object Dim MyFolder As Scripting.Folder MyFolderName = "C:\" 'フォルダを取得 MyFileName = Dir(MyFolderName & "*.*") Do While MyFileName <> "" Debug.Print MyFileName MyFileName = Dir() Loop 'ファイルを取得 Set myFSO = CreateObject("Scripting.FileSystemObject") With myFSO With .GetFolder(MyFolderName) For Each MyFolder In .SubFolders Debug.Print MyFolder.Name Next End With End With Set myFSO = Nothing End Sub ************************************** の様に ファイル名・フォルダ名をそれぞれループして取得しないとダメでしょうか? もうちょっとスマートなコードはありますか?

  • エクセルのVBAで、フォルダごとコピーしたいのですが…

    エクセルのVBAで、フォルダごとコピーしたいのですが… Dドライブの”TEST"というフォルダを、同じくDドライブに"TEST2"という名前でコピーしたいのです。 Private Sub sakusei_Click() Dim myFSO As New FileSystemObject myFSO.CopyFolder "D:\TEST", "D:\TEST2" End Sub ではうまくいかないのです。 私は初心者なので調べてもよくわからないので、 有識者の方、是非教えてください。 宜しくお願い致します。

  • FSOでエクセルファイルを作成したい

    FSOでエクセルファイルを作成したいのですが、 ファイルの作成はできますが、作成したファイルが開けません。 Sub 新規Excelファイルを作成する() Dim MyFile As String Dim myFSO As Object MyFile = "管理簿.xlsx" Set myFSO = CreateObject("Scripting.FileSystemObject") With myFSO.CreateTextFile("C:\" & MyFile) .Close End With Set myFSO = Nothing End Sub で、エラーにならずうまくいっています。 が、その出来上がったファイルを開こうとすると 「ファイル形式またはファイル拡張子が正しくありません」 と言う旨のメッセージが表示されます。 何が間違ってますか? よろしくお願いします。

  • 「New」はつけた方がいいのでしょうか?

    vbaなのですが、 FileSystemObjectでドライブの情報を取得したりファイル操作をしているのですが FileSystemObjectを宣言する時は、 Dim myFSO As New FileSystemObject にしたほうがいいのか、 Dim myFSO As FileSystemObject でいいのか教えてください. Sub Sample() Dim myFSO As New FileSystemObject Dim Drv As Variant Dim buf As String Set myFSO = CreateObject("Scripting.FileSystemObject") For Each Drv In myFSO.Drives Debug.Print Drv.DriveLetter Next Drv Set myFSO = Nothing End Sub 上記のコードは、newを付けても付けなくても結果は変わりませんでした。 よろしくお願いします。

  • vbaで参照設定する方法

    sub フォルダをコピーする() Dim myFSO As New FileSystemObject myFSO.CopyFolder "D:\TEST", "D:\TEST2" End Sub を実行したいのですが、 Visual Basic Editor の [ツール]-[参照設定] で、 "Microsoft Scripting Runtime" にチェックせずに、 vbaで参照設定する方法を教えてください。 バージョンは2007です。 ご回答よろしくお願いします。

  • vbaでフォルダの中のファイルを削除したい

    vbaでフォルダの中のファイルを削除したいのですが その場合は、 Sub フォルダの中身を全て削除する() Set myFSO = CreateObject("Scripting.FileSystemObject") With myFSO MyFolderName = ConsT_フォルダ名 & "\" MyFileName = Dir(MyFolderName & "\*.*") Do While MyFileName <> "" myFSO.DeleteFile MyFolderName & "\" & MyFileName MyFileName = Dir() Loop End With Set myFSO = Nothing End Sub の様にして、一つ一つループして消していかないとダメでしょうか? フォルダは残して、カラのフォルダにしたいです。

  • VBScript でサブフォルダも含めて、フォルダごとコピーを実行するには?

    バックアップの自動化をもくろんでいます。 VBScriptを用意し定刻に実行するようにしようと考えています。 VBScript でサブフォルダも含めて、フォルダごとコピーを実行するには、どうプログラムをかけばよいでのしょうか? Set objFS = CreateObject ("Scripting.FileSystemObject") objFS.CopyFolder "c:\test1", "c:\test2", false だとtest1の中のサブフォルダはコピーしてくれませんでした。 ここでオプションか何かで、サブフォルダーごとコピーしたいのです。 参考までにコマンドプロンプトの xcopy c:\test1 c:\test2 /x と同じ働きをさせたいのです。 よろしくお願い致します。

専門家に質問してみよう