大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、フォルダやファイルの作成や、コピー、変更、移動、削除するには、「FileSystemObject」を使うと簡単にできます。VBAを使って、フォルダやファイルの操作を自動化していきましょう。

はじめに

この記事では、フォルダやファイルを操作する方法について、ご紹介します。

フォルダやファイルを操作するには、「FileSystemObject」を使うと便利です。

フォルダやファイルを操作する方法は、次のようになります。

  • フォルダのコピー:「.CopyFolder A, B, False」
  • フォルダの移動:「.MoveFolder A, B」
  • フォルダの削除:「.DeleteFolder A」
  • フォルダの作成:「MkDir A」
  • ファイルのコピー:「.CopyFile A, B, False」
  • ファイルの移動:「.MoveFile A, B」
  • ファイルの削除:「.DeleteFile A」

という感じです。

複数フォルダや複数ファイルの操作をするには、ワイルドカード「*」を使うとできます。

VBAを使って、フォルダやファイルの操作を自動化していきましょう。

では、フォルダやファイルを操作する方法について、解説していきます。

この記事を読むメリット

  • フォルダやファイルを操作する方法がわかります

本記事の内容を動画でまとめています

目次から見たい項目へ移動すると便利ですよ。

目次

VBAコードまとめ

フォルダやファイルを操作するVBAコードをまとめています。

VBAコードだけを確認したい場合に、ご活用ください。

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")

Dim A, B

'フォルダの操作
FSO.CopyFolder A, B, False 'フォルダコピー
FSO.MoveFolder A, B 'フォルダ移動
FSO.DeleteFolder A 'フォルダ削除
MkDir A 'フォルダ新規作成

'ファイルの操作
FSO.CopyFile A, B, False 'ファイルコピー
FSO.MoveFile A, B 'ファイル移動
FSO.DeleteFile A 'ファイル削除

では、解説していきます。

フォルダの操作

次のフォルダの操作をしてみます。

  • フォルダのコピー
  • フォルダの移動
  • フォルダの削除
  • 複数フォルダのコピー
  • 複数フォルダの移動
  • 複数フォルダの削除
  • フォルダの作成

では、やってみます。

フォルダのコピー

フォルダのコピーは、「.CopyFolder」を使います。

Sub TEST1()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A, B
    A = "C:\Users\User\Desktop\TEST\TEST1" 'コピー元
    B = "C:\Users\User\Desktop\TEST\TEST2" 'コピー先
    
    'フォルダをコピーする
    FSO.CopyFolder A, B, False
    
End Sub

3つ目の引数を、「False」にすると、上書き保存はしない設定となります。

フォルダを用意しておきます。

フォルダを用意

フォルダを用意しておきます

実行すると、フォルダをコピーできます。

フォルダをコピーできた

フォルダをコピーできました

フォルダをコピーできました。

フォルダの移動(名前の変更)

フォルダの移動をするには、「.MoveFolder」を使います。

親フォルダを同じにすると、フォルダ名の変更になります。

Sub TEST2()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A, B
    A = "C:\Users\User\Desktop\TEST\TEST1" '元フォルダ
    B = "C:\Users\User\Desktop\TEST\TEST2" '移動先
    
    'フォルダを移動する
    FSO.MoveFolder A, B
    
End Sub

フォルダを用意しておきます。

フォルダを用意

フォルダを用意しておきます

実行すると、フォルダ名を変更できます。

フォルダ名を変更できた

フォルダ名を変更できました

フォルダ名を変更できました。

フォルダの削除

フォルダの削除をするには、「.DeleteFolder」を使います。

Sub TEST3()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A
    A = "C:\Users\User\Desktop\TEST\TEST1" '削除するフォルダ
    
    'フォルダを削除する
    FSO.DeleteFolder A
    
End Sub

フォルダを用意しておきます。

フォルダを用意

フォルダを用意しておきます

実行すると、フォルダを削除できます。

フォルダを削除できた

フォルダを削除できました

フォルダを削除できました。

複数フォルダのコピー

複数フォルダのコピーをするには、ワイルドカード「*」と「.CopyFolder」を使います。

Sub TEST4()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A, B
    A = "C:\Users\User\Desktop\TEST\*" 'コピー元
    B = "C:\Users\User\Desktop\TEST1" 'コピー先
    
    '複数フォルダをコピーする
    FSO.CopyFolder A, B, False
    
End Sub

複数フォルダを用意しておきます。

複数フォルダを用意

複数フォルダを用意しておきます

実行すると、複数フォルダをコピーできます。

複数フォルダをコピーできた

複数フォルダをコピーできました

複数フォルダをコピーできました。

複数フォルダの移動

複数フォルダの移動するには、ワイルドカード「*」と「.MoveFolder」を使います。

Sub TEST5()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A, B
    A = "C:\Users\User\Desktop\TEST\*" '元フォルダ
    B = "C:\Users\User\Desktop\TEST1" '移動先
    
    '複数フォルダを移動する
    FSO.MoveFolder A, B
    
End Sub

複数フォルダを用意しておきます。

複数フォルダを用意

複数フォルダを用意しておきます

実行すると、複数フォルダを移動できます。

複数フォルダを移動できた

複数フォルダを移動できました

複数フォルダを移動できました。

複数フォルダの削除

複数フォルダの削除は、ワイルドカード「*」と「.DeleteFolder」を使うとできます。

Sub TEST6()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A
    A = "C:\Users\User\Desktop\TEST\*" '削除するフォルダ
    
    '複数フォルダを削除する
    FSO.DeleteFolder A
    
End Sub

複数フォルダを用意しておきます。

複数フォルダを用意

複数フォルダを用意しておきます

実行すると、複数フォルダを削除できます。

複数フォルダを削除できた

複数フォルダを削除できました

複数フォルダを削除できました。

フォルダの作成

フォルダの作成は、「MkDir」を使います。

Sub TEST7()
    
    MkDir "C:\Users\User\Desktop\TEST\TEST1"
    
End Sub

では、フォルダを作成してみます。

フォルダを作成する

フォルダを作成します

実行すると、フォルダを作成できます。

フォルダを作成できた

フォルダを作成できました

フォルダを作成できました。

ファイルの操作

次のファイルの操作をしてみます。

  • ファイルのコピー
  • ファイルの移動
  • ファイルの削除
  • 複数ファイルのコピー
  • 複数ファイルの移動
  • 複数ファイルの削除

では、やってみます。

ファイルのコピー

ファイルのコピーをするには、「.CopyFile」を使います。

Sub TEST8()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A, B
    A = "C:\Users\User\Desktop\TEST\TEST1.txt" 'コピー元
    B = "C:\Users\User\Desktop\TEST\TEST2.txt" 'コピー先
    
    'ファイルをコピーする
    FSO.CopyFile A, B, False
    
End Sub

ファイルを用意しておきます。

ファイルを用意

ファイルを用意しておきます

実行すると、ファイルをコピーできます。

ファイルをコピーできた

ファイルをコピーできました

ファイルをコピーできました。

ファイルの移動(名前の変更)

ファイルの移動をするには、「.MoveFile」を使います。

フォルダパスを同じにすると、ファイル名を変更することができます。

Sub TEST9()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A, B
    A = "C:\Users\User\Desktop\TEST\TEST1.txt" '元ファイル
    B = "C:\Users\User\Desktop\TEST\TEST2.txt" '移動先
    
    'ファイルを移動する
    FSO.MoveFile A, B
    
End Sub

ファイルを用意しておきます。

ファイルを用意

ファイルを用意しておきます

実行すると、ファイル名を変更できます。

ファイル名を変更できた

ファイル名を変更できました

ファイル名を変更できました。

ファイルの削除

ファイルの削除をするには、「.DeleteFile」を使います。

Sub TEST10()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A
    A = "C:\Users\User\Desktop\TEST\TEST1.txt" '削除するファイル
    
    'ファイルを削除する
    FSO.DeleteFile A
    
End Sub

ファイルを用意しておきます。

ファイルを用意

ファイルを用意しておきます

実行すると、ファイルを削除できます。

ファイルを削除できた

ファイルを削除できました

ファイルを削除できました。

複数ファイルのコピー

複数ファイルのコピーをするには、ワイルドカード「*」と「.CopyFile」を使います。

Sub TEST11()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A, B
    A = "C:\Users\User\Desktop\TEST\*" 'コピー元
    B = "C:\Users\User\Desktop\TEST1" 'コピー先
    
    '複数ファイルをコピーする
    FSO.CopyFile A, B, False
    
End Sub

複数ファイルを用意しておきます。

複数ファイルを用意

複数ファイルを用意しておきます

実行すると、複数ファイルをコピーできます。

複数ファイルをコピーできた

複数ファイルをコピーできました

複数ファイルをコピーできました。

複数ファイルの移動

複数ファイルの移動をするには、ワイルドカード「*」と「.MoveFile」を使います。

Sub TEST12()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A, B
    A = "C:\Users\User\Desktop\TEST\*" '元ファイル
    B = "C:\Users\User\Desktop\TEST1" '移動先
    
    '複数ファイルを移動する
    FSO.MoveFile A, B
    
End Sub

複数ファイルを用意しておきます。

複数ファイルを用意

複数ファイルを用意しておきます

実行すると、複数ファイルを移動できます。

複数ファイルを移動できた

複数ファイルを移動できました

複数ファイルを移動できました。

複数ファイルの削除

複数ファイルの削除をするには、ワイルドカード「*」と「.DeleteFile」を使います。

Sub TEST13()
    
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Dim A
    A = "C:\Users\User\Desktop\TEST\*" '削除するファイル
    
    '複数ファイルを削除する
    FSO.DeleteFile A
    
End Sub

複数ファイルを用意しておきます。

複数ファイルを用意

複数ファイルを用意しておきます

実行すると、複数ファイルを削除できます。

複数ファイルを削除できた

複数ファイルを削除できました

複数ファイルを削除できました。

おわりに

この記事では、フォルダやファイルを操作する方法について、ご紹介しました。

フォルダやファイルを操作するには、「FileSystemObject」を使うと便利です。

フォルダやファイルを操作する方法は、次のようになります。

  • フォルダのコピー:「.CopyFolder A, B, False」
  • フォルダの移動:「.MoveFolder A, B」
  • フォルダの削除:「.DeleteFolder A」
  • フォルダの作成:「MkDir A」
  • ファイルのコピー:「.CopyFile A, B, False」
  • ファイルの移動:「.MoveFile A, B」
  • ファイルの削除:「.DeleteFile A」

という感じです。

複数フォルダや複数ファイルの操作をするには、ワイルドカード「*」を使うとできます。

VBAを使って、フォルダやファイルの操作を自動化していきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す