Sub ts()
Dim oDLG
Dim pth As String
Dim Flname As String
Dim shl As Shell32.Shell
Dim shfd As Shell32.Folder
Dim s As String
Dim i As Integer
Set oDLG = CreateObject("MSComDlg.CommonDialog")
With oDLG
.DialogTitle = "打开文件"
.Filter = "所有文件|*.*"
.MaxFileSize = 255
.ShowOpen
If .Filename <> "" Then
i = InStrRev(.Filename, "\")
If i = 0 Then Exit Sub
Flname = Mid(.Filename, i + 1)
Set shl = New Shell
Set shfd = shl.Namespace(Left(.Filename, i - 1))
For i = 0 To 39
If shfd.GetDetailsOf(0, i) <> "" And shfd.GetDetailsOf(shfd.Items.Item(Flname), i) <> "" Then
s = s & i & ":" & shfd.GetDetailsOf(0, i) & ": " & shfd.GetDetailsOf(shfd.Items.Item(Flname), i) & Chr(10)
Debug.Print s
End If
Next i
MsgBox s, vbInformation, "文件属性"
End If
End With
Set oDLG = Nothing
End Sub
先引用Microsoft Shell Controls and Automation
VBA实例
Sub ts()
Dim pth As String
Dim Flname As String
Dim sPath As String
Dim sOwner As String
Dim shl As Shell32.Shell
Dim shfd As Shell32.Folder
Dim s As String
Dim i As Integer
sPath = "\\10.116.0.26\smc82files\06、公用文件\"
Flname = Dir(sPath)
i = 2
Do While Flname <> ""
If Flname <> "." And Flname <> ".." Then
If GetAttr(sPath & Flname) = vbDirectory Then
Flname = Dir()
Else
Set shl = New Shell
Set shfd = shl.Namespace(sPath)
ActiveSheet.Cells(i, 1).Value = Flname
ActiveSheet.Cells(i, 2).Value = shfd.GetDetailsOf(shfd.Items.Item(Flname), 10)
ActiveSheet.Cells(i, 3).Value = shfd.GetDetailsOf(shfd.Items.Item(Flname), 20)
i = i + 1
Flname = Dir()
End If
Else
Flname = Dir()
End If
Loop
MsgBox "ok"
End Sub