VBA Excel 2010年创建对象扩展属性获取图像宽度属性



我正在使用类似的函数来获取一些属性属性,如Filenamebit depthdimensionssize等通过使用一些vba代码。该函数的最后一行如下所示:

PicSize = CreateObject("Shell.Application").Namespace(vPth2).Parsename(sPic2).ExtendedProperty("size")

现在,我想获取该图像文件的高度和宽度。我已经将heightwidth放入ExtendedProperty属性值中,但它没有为我提供该文件的高度和宽度。

请注意,在该图像文件的属性对话框中,在摘要选项卡中,它显示了Bit depth但放置它不起作用。然后我放了bitdepth,它成功了。名称不区分大小写。

好!现在我只想获取所选图像文件的高度和宽度。我该怎么做?我的意思是放在ExtendedProperty()里面的东西以获得高度和宽度。

尽早回复解决方案将不胜感激。

无法帮助说明为什么 HeightWidth 不起作用,但似乎Dimensions有效,返回一个字符串,如下所示?493 x 376?

我建议解决方法

替换代码中的size

PicSize=CreateObject("Shell.Application").Namespace(vPth2).Parsename(sPic2).ExtendedProperty("size")

Dimensions你会得到类似?493 x 376?

现在声明

字符串t = "?493 x 376?"

'搜索"X"的索引

search_x = InStr(t, "x")

"我们会得到宽度和高度

width = Mid(t, 2, search_x - 2)
height = Mid(t, search_x + 2, Len(t) - 8)

不知道为什么,但我发现从宽度"2"和高度"-8"开始会给出一个数字

您可以通过修改代码来单独检索图像的宽度和高度,如下所示:

Width = CreateObject("Shell.Application").Namespace(vPth2).Parsename(sPic2).ExtendedProperty("{6444048F-4C8B-11D1-8B70-080036B11A03} 3")
Height = CreateObject("Shell.Application").Namespace(vPth2).Parsename(sPic2).ExtendedProperty("{6444048F-4C8B-11D1-8B70-080036B11A03} 4")

有关其他扩展属性,请参阅通用打开属性

最新更新