File System Objectを使用してVBAファイルを処理する

基本的なファイル処理を行うためにVBA組み込みのコマンドを使用しますが、問題は、ファイルディレクトリの検出と削除をFunctionとして記述する必要があり、単一のコマンドでは操作できません。使用する前に、これらのFunctionを手動でインポートする必要があります。

もう1つのより簡単な方法はFile System Objectを使用します。このオブジェクトはファイルとディレクトリに関連するFunctionを組み込んでいるため、直接参照できます。

宣言方式

1.

Dim myFSO As Object
Set myFSO = CreateObject("Scripting.FileSystemObject")

2.

Dim fso As FileSystemObject
Set myFSO = CreateObject("Scripting.FileSystemObject")
Dim fld As Folder
Dim fil As File

3.

Dim fso As FileSystemObject
Set fso = New Script.FileSystemObject

FileSystemObject主に3つのオブジェクトがあります。最上部にあるFileSystemObjectと下部のFoldeやFileオブジェクトです。

Folderを取得するには、GetFolderメソッドを実行する必要があります。

Set fld = fso.GetFolder(Cells(2, 1).Value) ' folder string

これより、ディレクトリ内の各ファイルのファイル名、サイズ、および日付の変更にアクセスできます。

For Each pFile In fld.Files
pFile.Name = NameBuf(0) & "." & NewFileName & NameBuf(1)
Next

fld.FilesなどのFile Sysetm ObjectのCollectionは、配列番号でメンバーにアクセスできないことに注意してください。ファイル名を使用する必要があります。

サブディレクトリにアクセスします。

For each subfld in fld.SubFolders
Cells(i,1).Value = subfld.path
Next

ディレクトリが存在するかどうかを確認します。

fso.Folder Exists(fldrname)はBoolean値を返します。Trueは存在を代表し、Falseは存在しないことを代表します。

ファイルが存在するかどうかを確認します。

fso.File Exists(“C:\testfile.txt”)はBoolean値を返します。Trueは存在を代表し、Falseは存在しないことを代表します。

ディレクトリを作成します。

Set fld = fso.CreateFolder("c:\New Folder")

ファイルを作成します。

fsoは現在TextFileしか作成できません。

Set a = fso.CreateTextFile("c:\testfile.txt", True)
a.WriteLine("This is a test.") ' aはTextStreamオブジェクトです。
a.Close

ディレクトリとファイルを取得します。

fso.GetFolder()和fso.GetFile

ディレクトリとファイルを削除します。

fso.DeleteFolder()和fso.DeleteFile

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です