在VBA中获取图像大小?

Aus*_*n R 4 excel vba image excel-vba word-vba

在我为其构建一些VBA代码的word文档中,我需要能够在用户窗体上显示图像,并且还要调整用户窗体的大小以适应它呈现的任何图像.

当我在立即盒子中尝试这样的东西时我很困惑(图像文件实际上只有675像素宽):

? LoadPicture("C:\Users\arose\Desktop\Security Control Doc\Images\AC1.bmp").Width
  17859 
Run Code Online (Sandbox Code Playgroud)

最终我发现这是因为VBA使用了除像素之外的某些单位.缇,或类似的东西.但我真的需要以像素为单位的图像大小,所以我四处乱逛,大致发现转换因子是什么,我正在使用它:

Function TwipsToPixels(Twips As Long) As Long

    TwipsToPixels = Twips / 25.477

End Function
Run Code Online (Sandbox Code Playgroud)

这有所帮助,但并不是特别准确.所以我的问题是,有没有人有更优雅和精确的方式来获得VBA中的图像大小?

vul*_*ino 7

VBA中的默认测量单位是:与屏幕无关的测量单位,等于点的1/20,或1/1,440英寸.一厘米有567缇.

像素是屏幕相关的单位,所以这两个功能/性能TwipsPerPixelXTwipsPerPixelY应该做的伎俩.