Вы говорите цикл .. поэтому, если вы хотите сделать это для 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 - индекс столбца атрибута, например, 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