【ユーザーフォーム】フォルダごと別の場所にコピーする:VBA

ユーザーフォームvba_フォルダを別の場所にコピー_アイキャッチ ExcelVBA

ユーザーフォームを使用して、フォルダを別の場所にコピーするマクロコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。

概要

ユーザーフォームでフォルダのコピーを作成します。

「コピー元のフォルダ」で指定したフォルダを

「コピー先のフォルダ」へフォルダごとコピーします。

ユーザーフォームを作成して開く

エクセルにコマンドボタンを作成し、ユーザーフォームを開きます。


 

マクロコードを標準モジュール「Module1」に入力します。


Sub ボタン1_Click()
    UserForm1.Show vbModeless
End Sub

 

マクロコードを「Module1」に入力した画面の様子


 

ユーザーフォームにマクロコード入力

マクロコードを「UserForm1」に入力します。


Option Explicit

Dim dlg As FileDialog
Dim Fso As Object
Dim fold_path As String
Dim Buf As String
Dim FileName As Variant
Dim FileSp As Variant

Sub folderpass_input()

    Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
    
    'キャンセルボタンクリック時にマクロを終了
    If dlg.Show = False Then Exit Sub
    
    'フォルダーのフルパスを変数に格納
    fold_path = dlg.SelectedItems(1)
    
    'フォルダ名を取得
    If Buf = 1 Then
        FileSp = Split(fold_path, "\")
        FileName = FileSp(UBound(FileSp))
    End If

End Sub

Private Sub CommandButton1_Click()

    'フォルダを選択し、テキストボックスへパスを転記
    Buf = 1
    Call folderpass_input
    TextBox1.Text = fold_path
    
End Sub

Private Sub CommandButton2_Click()
   
    'フォルダを選択し、テキストボックスへパスを転記
    Buf = 2
    Call folderpass_input
    TextBox2.Text = fold_path
    
End Sub

Private Sub CommandButton3_Click()

    Set Fso = CreateObject("Scripting.FileSystemObject")
    
    'フォルダにコピー
    Fso.CopyFolder TextBox1.Text, TextBox2.Text & "\" & FileName
    Set Fso = Nothing
    
    MsgBox "完了"
    
End Sub

 

マクロコードを入力する場所「UserForm1」


 

動作

ユーザーフォームを起動します。

「コピーのフォルダ」ボタンをクリックし、ダイヤログ画面を表示します。

コピーしたいフォルダを選択して、「OK」をクリックします。


 
 

続いて、「コピーのフォルダ」ボタンをクリックし、ダイヤログ画面を表示します。

複製先のフォルダを選択して、「OK」をクリックします


 
 

「コピーのフォルダ」「コピーのフォルダ」の両方にフォルダパスが入ります。

「実行」をクリックします。


 
 

処理完了後、メッセージボックスが表示されます。


 
 

実行結果

「コピー元のフォルダ」で指定したフォルダを

「コピー先のフォルダ」へフォルダごとコピーできました。

「コピーのフォルダ」の容量が大きいと、VBAの処理時間は長くなります。


 
この記事がお役に立ちますと幸いです。
 
・【ExcelVBA】ユーザーフォーム作成の事例まとめ
 

【VBAユーザーフォーム】何ができるの?:使用例34選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説