在我为其构建一些VBA代码的word文档中,我需要能够在用户窗体上显示图像,并调整用户窗体的大小以适应它所呈现的任何图像。
当我在立即盒子中尝试这样的东西时我很困惑(图像文件的宽度实际上只有675像素):
? LoadPicture("C:\Users\arose\Desktop\Security Control Doc\Images\AC1.bmp").Width
17859
最终我发现这是因为VBA使用了除像素之外的某些单位。缇,或类似的东西。但我真的需要像素大小的形象,所以我四处乱逛,大致发现转换因子是什么,我正在使用它:
Function TwipsToPixels(Twips As Long) As Long
TwipsToPixels = Twips / 25.477
End Function
这有所帮助,但并不是特别准确。所以我的问题是,有没有人有更优雅和精确的方法来获取VBA中的图像大小?
答案 0 :(得分:7)
VBA中的默认测量单位为缇:与屏幕无关的测量单位,等于点的1/20或1 / 1,440英寸。一厘米有567个缇。
像素是与屏幕相关的单位,因此两个函数/属性TwipsPerPixelX
和TwipsPerPixelY
应该可以解决问题。