あなたはループと言います..したがって、現在のドキュメントの代わりにdirに対してこれを実行したい場合は、
Dim sFile As Variant
Dim oShell: Set oShell = CreateObject("Shell.Application")
Dim oDir: Set oDir = oShell.Namespace("c:\foo")
For Each sFile In oDir.Items
Debug.Print oDir.GetDetailsOf(sFile, XXX)
Next
ここで、XXXは属性列インデックスであり、たとえばAuthorの場合は9です。参照に使用できるインデックスを一覧表示するには、forループを;に置き換えることができます。
for i = 0 To 40
debug.? i, oDir.GetDetailsOf(oDir.Items, i)
Next
単一のファイル/属性の場合:
Const PROP_COMPUTER As Long = 56
With CreateObject("Shell.Application").Namespace("C:\HOSTDIRECTORY")
MsgBox .GetDetailsOf(.Items.Item("FILE.NAME"), PROP_COMPUTER)
End With