LoadPicture错误图片无效

时间:2013-09-06 15:49:14

标签: vba powerpoint-vba loadimage

我正试图从文件夹中取出图像以检查其宽度。要做到这一点,我使用以下代码和平:

         Dim pic As IPictureDisp
         Dim var As Variant
         var = "C:\Myfolder\Animage" & animationNum + 1 & ".png"
         pic = LoadPicture(var)

它给了我“无效图片”错误。我还尝试使用以下行:

        width = LoadPicture("C:\Myfolder\Animage" & animationNum + 1 & ".png").width

但它也给了我同样的错误。我该如何加载图片?

修改

我尝试使用jpg图像并且它可以工作......这是否与png文件有关?

3 个答案:

答案 0 :(得分:2)

来自msdn.microsoft.com

  

Visual Basic识别的图形格式包括位图(.bmp)   文件,图标(.ico)文件,光标(.cur)文件,游程编码   (.rle)文件,元文件(.wmf)文件,增强型图元文件(.emf),GIF   (.gif)文件和JPEG(.jpg)文件。

.png 不受支持。

答案 1 :(得分:0)

在更高版本的Office中操作时,LoadPicture命令似乎不喜欢文件名的长度大于35个字符。我可以在Windows 7 Office 2010中将图片加载到用户窗体中,它似乎可以处理任何长度的文件名,但是一旦移至Windows 10 / Office 2013以后,如果长度超过35个字符,Err.Description就会简单地说:路径/访问错误”。

将文件名限制为35个字符,就可以了。

答案 2 :(得分:-1)

我正在寻找这个确切的问题并在另一个网站上找到了解决方案,所以我想我会在这里分享。

我没有提出这个代码,它来自于Expert Exchange:http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_26980514.html

如果您导入.bas文件,则可以使用LoadPictureGDI()代替LoadPicture(),在将图片加载到用户表单或工作表之前转换图片。