公司的盘里某路径(例如 D:\Image202101\ )下有许多图片, 现需要用excel vba 打开“”Image202101”文件夹,并按大小排序,且以超大图标显示。
现只会用shell “explorer.exe D:\Image202101\”, vbNormalFocus 打开文件夹,请问后面的排序+超大图标显示该如何实现?
求指点,感谢!
公司的盘里某路径(例如 D:\Image202101\ )下有许多图片, 现需要用excel vba 打开“”Image202101”文件夹,并按大小排序,且以超大图标显示。
现只会用shell “explorer.exe D:\Image202101\”, vbNormalFocus 打开文件夹,请问后面的排序+超大图标显示该如何实现?
求指点,感谢!
chatGPT上的问答如下,正确性未知:
问:
如何在excel vba里打开某个文件夹window s窗口,并让窗口里的内容以超大图标方式显示?
答:
您可以使用以下的VBA代码来打开指定的文件夹窗口并设置其显示方式为超大图标:
Sub OpenFolder()
Dim folderPath As String
' 设置要打开的文件夹路径
folderPath = "C:\Users\Username\Desktop"
' 创建Shell对象
Set shell = CreateObject("Shell.Application")
' 打开文件夹窗口并设置其显示方式为超大图标
shell.Explore folderPath
shell.Windows(folderPath).Document.Folder.Options.ViewMode = 4
' 释放对象
Set shell = Nothing
End Sub
在上面的代码中,您需要将folderPath变量设置为您要打开的文件夹的路径。代码中首先创建一个Shell对象,然后使用Explore方法打开指定路径的文件夹窗口,最后将其显示方式设置为超大图标模式。
请注意,超大图标模式仅适用于Windows操作系统。如果您的VBA代码运行在其他操作系统上,可能需要更改此代码以适应该操作系统的文件夹显示方式。
问:
另外,如何让窗口里的内容按大小排序显示?
答:
要按文件大小对窗口内容进行排序,您可以将VBA代码中的ViewMode属性设置为5,这将把文件夹窗口显示为“详细信息”视图,并按文件大小排序。以下是更新后的VBA代码:
Sub OpenFolder()
Dim folderPath As String
' 设置要打开的文件夹路径
folderPath = "C:\Users\Username\Desktop"
' 创建Shell对象
Set shell = CreateObject("Shell.Application")
' 打开文件夹窗口并设置其显示方式为超大图标,并按文件大小排序
shell.Explore folderPath
shell.Windows(folderPath).Document.Folder.Options.ViewMode = 5
shell.Windows(folderPath).Document.Folder.ApplyViewSettings
' 释放对象
Set shell = Nothing
End Sub
在上面的代码中,我们将ViewMode属性设置为5,这将使窗口内容按文件大小排序。为了确保设置得到了应用,我们还调用了ApplyViewSettings方法。
请注意,ApplyViewSettings方法只适用于Windows 7及更高版本。如果您的操作系统是Windows XP或更低版本,则无法使用此方法。在这种情况下,您可以尝试使用其他方法,例如使用SendKeys命令发送按键操作来模拟手动操作来实现更改窗口视图设置的目的。