『Excelでファイル一覧』FileSystemObject編 その2

2021年11月30日 社員のつぶやき

前回の続きで「FileSystemObject」の使い方(ファイルやフォルダの「削除」、「コピー」、「移動」をご案内します。

 

■FileSystemObjectの使い方(続き)

※各プログラムの1行目のDim~ と 2行目のSet~は前回説明した通り、「FileSystemObject」を使うときのお決まりです。

 

◇ファイル・フォルダの削除

・ファイルの削除はDeleteFileメソッドを使います。

1つ目の引数に削除したいファイル名を指定します。ファイル名にはワイルドカードも指定でき、複数ファイルを削除することも可能です。

2つ目の引数はFalseがデフォルトの値(省略した場合)で、Trueを指定した場合は読み取り専用ファイルも削除します。

———————————————

Sub FileDelete()

Dim fso As FileSystemObject

Set fso = CreateObject(“Scripting.FileSystemObject”)

fso.DeleteFile “C:\Users\user\Desktop\test.txt”        ‘—-①

‘ ワイルドカードを使用する場合は[*]を使い次のように変更します。

‘ この場合は、「test」で始まり「.txt」で終わるファイル名は全て該当します。

fso.DeleteFile “C:\Users\user\Desktop\test*.txt”               ‘—-②

End Sub

———————————————

① ユーザーのデスクトップにある「test.txt」というファイルを削除します。

② ユーザーのデスクトップにある「test」で始まり「.txt」で終わる名前のファイルを全て削除します。

 

・フォルダの削除はDeleteFolderメソッドを使います。

DeleteFileメソッド同様、1つ目の引数には削除したいフォルダのパス(ワイルドカード可)を指定し、2つ目はFalseがデフォルトの値(省略した場合)で、Trueを指定すると読み取り専用フォルダでも削除します。

———————————————

Sub FolderDel()

Dim fso As FileSystemObject

Set fso = CreateObject(“Scripting.FileSystemObject”)

fso.DeleteFolder “C:\Users\user\Desktop\Test”          ‘—-①

‘ ワイルドカードを使用する場合

fso.DeleteFolder “C:\Users\user\Desktop\Test*”  ‘—-②

End Sub

———————————————

① ユーザーのデスクトップにある「Test」というフォルダを削除します。

② ユーザーのデスクトップにある「Test」で始まる名前のフォルダを全て削除します。

 

◇ファイル・フォルダのコピー

・ファイルのコピーにはCopyFileメソッドを使います。コピー元、コピー先は必須で、3つ目の引数は上書き可否の真偽値(TrueかFalse)を指定します。Trueがデフォルトです。

———————————————

Sub FileCopy()

Dim fso As FileSystemObject

Set fso = CreateObject(“Scripting.FileSystemObject”)

fso.CopyFile “C:\Users\user\Desktop\test.txt”, _

“C:\Users\user\Documents\test.txt”, False

End Sub

———————————————

※ユーザーのデスクトップの「test.txt」をユーザーのドキュメントフォルダへコピーしています。

 

・フォルダのコピーにはCopyFolderメソッドを使います。CopyFileメソッド同様でコピー元、コピー先は必須。3つ目の引数はフォルダの上書き可否を決める真偽値をとります。

———————————————

Sub FolderCopy()

Dim fso As FileSystemObject

Set fso = CreateObject(“Scripting.FileSystemObject”)

fso.CopyFolder “C:\Users\user\Desktop\Test”, _

“C:\Users\user\Documents\Test”, False

End Sub

———————————————

※ユーザーのデスクトップにある「Test」というフォルダをユーザーのドキュメントフォルダへコピーしています。

 

◇ファイル・フォルダの移動

・ファイルの移動にはMoveFileメソッドを使います。移動元と移動先を引数で指定します。移動元にはワイルドカードを使用できるので、複数のファイルを移動できます。

※注)移動先に同名のファイルがあるとエラーになります。

———————————————

Sub FileMove()

Dim fso As FileSystemObject

Set fso = CreateObject(“Scripting.FileSystemObject”)

fso.MoveFile “C:\Users\user\Desktop\test.txt”, _

“C:\Users\user\Documents\test.txt”

End Sub

———————————————

※ユーザーのデスクトップにある「test.txt」をユーザーのドキュメントフォルダへ移動しています。

 

・フォルダの移動はMoveFolderメソッドを使います。MoveFileメソッドと同様で、移動元と移動先を引数にとり、移動元にはワイルドカードを使用できます。

———————————————

Sub FolderMove()

Dim fso As FileSystemObject

Set fso = CreateObject(“Scripting.FileSystemObject”)

fso.MoveFolder “C:\Users\user\Desktop\Test”, _

“C:\Users\user\Documents\Test”

End Sub

———————————————

※ユーザーのデスクトップにある「Test」というフォルダをユーザーのドキュメントフォルダへ移動しています。

 

FileSystemObjectを使った、ファイルとフォルダの「削除」、「コピー」、「移動」をご紹介しました。

 

次回は、FileSystemObjectを使ってファイル一覧を作成してみます。

 

Copyright c syshan.jp all rights reserved.