Excel

【Excel】VBAマクロでファイル移動を一括で(別のフォルダ:ディレクトリなど)行う方法【MoveFiles関数、FileDialog関数使用】

当サイトでは記事内に広告を含みます

この記事では、VBAマクロでファイル移動を一括で(別のフォルダ:ディレクトリなど)行う方法【MoveFiles関数、FileDialog関数使用】について解説していきます。

ポイントとしては、MoveFiles関数とFileDialog関数を使用することです。

初心者にも理解しやすいよう、変数名を少々変わった日本語ローマ字表記にしていますので、実際にご活用の際は、適切な英語表記に変更してください!

それでは詳しく見ていきましょう!

VBAマクロでファイル移動を一括で(別のフォルダに)【別のokokok.csvのA列の2行目から最終行までが対象リスト】

それではまず、okokok.csvから取得したファイルリストを使ってファイルを移動する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub MoveFilesUsingList()
    Dim keiro As String
    Dim mokuteki As String
    Dim hensuu As Range
    Dim sakuhin As Workbook
    Set sakuhin = Workbooks.Open("C:\path\to\okokok.csv")
    keiro = "C:\source\path\"
    mokuteki = "C:\destination\path\"
    For Each hensuu In sakuhin.Sheets(1).Range("A2:A" & sakuhin.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row)
        If Dir(keiro & hensuu.Value) <> "" Then
            FileCopy keiro & hensuu.Value, mokuteki & hensuu.Value
            Kill keiro & hensuu.Value
        End If
    Next hensuu
    sakuhin.Close False
End Sub

コードのAlt+F8を押し、マクロ選択画面でMoveFilesUsingList関数を実行します。

このコードでは、指定したCSVファイルからファイルリストを読み込み、それらのファイルを新しいフォルダに移動します。ファイルパスは適宜調整してください。

 

VBAマクロでファイル移動を一括で(別のフォルダに)【ダイヤログで移動ファイルを指定する】

続いては、ダイアログを使用してファイルを選択し、それらを移動する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub MoveFilesUsingDialog()
    Dim mokuteki As String
    Dim dialog As FileDialog
    Set dialog = Application.FileDialog(msoFileDialogFilePicker)
    dialog.AllowMultiSelect = True
    mokuteki = "C:\destination\path\"
    If dialog.Show = -1 Then
        For Each Selection In dialog.SelectedItems
            FileCopy Selection, mokuteki & Dir(Selection)
            Kill Selection
        Next Selection
    End If
End Sub

コードのAlt+F8を押し、マクロ選択画面でMoveFilesUsingDialog関数を実行します。

このコードでは、ファイルダイアログを使ってユーザーが移動させたいファイルを選択し、指定したフォルダに移動させます。

 

まとめ VBAマクロでファイル移動を一括で(ダイヤログ:別のフォルダ:ディレクトリなど)行う方法【MoveFiles関数、FileDialog関数使用】

この記事では、VBAマクロでファイル移動を一括で(別のフォルダ:ディレクトリなど)行う方法【MoveFiles関数、FileDialog関数使用】について確認しました。

マクロをマスターして毎日を楽しんでいきましょう!(^^)/