Filesオブジェクトの引数には、インデックスを表す整数は使用できません
タイトルのサンプルマクロは、以下です。
' FileSystemObjectオブジェクトの使用例
' 実行時バインディングを使用
' Filesオブジェクトの引数には、インデックスを表す整数は使用できません。
Private Sub FilesObjectCannotInteger()
Dim FSO As Object
' 参照設定にかかわらず、以下は使用可能
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim myFiles As Object
Dim myFile As Object
Set myFiles = FSO.GetFolder("C:\TEMP").Files
Debug.Print myFiles.Item("hoge.txt").Name
' 以下は、エラーとなる。Itemの引数は、ファイル名を表す文字列を指定する必要があり、
' インデックスを表す整数は使用できません。
' Debug.Print myFiles.Item(1)
Debug.Print myFiles.Count
' すべてのファイル名を取得
For Each myFile In myFiles
Debug.Print myFile.Name
Next myFile
Set FSO = Nothing
End Sub
以下のように、「C:¥TEMP」の中に、ファイルが2つある状況で、マクロを実行すると、イミディエイトウィンドウには、以下のように、表示されます。
今回のサンプルマクロは、実行時バインディングであるが、事前バインディングするためには、参照設定にて、以下の「Microsoft Scripting Runtime」を選択する必要があります。