Excelスキルアップコレクション
           〜 Something U Want 〜


Google  

WWW を検索
Excelスキルアップコレクション内 を検索
 @     Top  >     Excel VBA スキルアップコレクション Topics  >     (15) フォルダをコピーする

 
(15) フォルダをコピーする

 VBAからフォルダをコピーする方法を紹介します。

 フォルダのコピーはFileSystemObjectのCopyFolderメソッドを使います。下記サンプルコードは、フォルダ「C:\Sample\value」をコピーしてフォルダ「value2」を作成する処理です。

 1行目:  Public Sub Sample_FolderCopy_01()
 2行目:  
 3行目:      Dim FSO As Object
 4行目:  
 5行目:      Set FSO = CreateObject("Scripting.FileSystemObject")
 6行目:  
 7行目:       ' フォルダをコピーする。
 8行目:      Call FSO.CopyFolder("C:\Sample\value", "C:\Sample\value2")
 9行目:  
10行目:      Set FSO = Nothing
11行目:      
12行目:  End Sub
 このサンプルコードを実行すると、フォルダ「C:\Sample\value」がコピーされてフォルダ「value2」が作成されます。コピー元のフォルダの中にファイルやサブフォルダが存在している場合、それらの全てが複製されます。
<実行前>

<実行後>

 コピー元のフォルダが存在していない状態で、CopyFolderメソッドを実行するとエラーが発生します。コピー先のフォルダが既に存在している場合は、容赦なく上書きします。
  FileSystemObjectのCopyFolderメソッドの第三引数にFalseを指定すると、コピー先に同一名のフォルダが存在している場合、上書きを抑止することができます(※第三引数省略時はTrueを指定した動作と同じになります。)。

…
    ' フォルダをコピーする。
    Call FSO.CopyFolder("C:\Sample\value", "C:\Sample\value2", False)
…
   FileSystemObjectのCopyFolderメソッドはフォルダ名にワイルドカード文字を指定できます。

…
    ' フォルダをコピーする。
    Call FSO.CopyFolder("C:\Sample\value*", "C:\Sample2\", False)
…
ページの先頭へ