4

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

当我在即时框中尝试这样的事情时,我很困惑(图像文件实际上只有 675 像素宽):

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

最终我发现这是由于 VBA 使用了像素以外的其他单位。Twips,或者类似的东西。但我真的需要以像素为单位的图像大小,所以我四处寻找,大致找到了转换因子,我正在使用这个:

Function TwipsToPixels(Twips As Long) As Long

    TwipsToPixels = Twips / 25.477

End Function

这有帮助,但不是特别准确。所以我的问题是,有没有人有更优雅、更精确的方式在 VBA 中获取图像大小?

4

1 回答 1

7

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

像素是与屏幕相关的单位,因此这两个功能/属性TwipsPerPixelX应该TwipsPerPixelY可以解决问题。

于 2012-09-05T13:41:14.377 回答