image - 在VBA中获取图像大小?

标签 image vba excel ms-word

在我为其构建一些 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 中获取图像尺寸?

最佳答案

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

像素是与屏幕相关的单位,因此两个函数/属性 TwipsPerPixelXTwipsPerPixelY 应该可以解决问题。

关于image - 在VBA中获取图像大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12282753/

相关文章:

vba - 根据单元格值复制行,然后添加小计

excel - 在Excel中查找日期之前的星期一或星期三

sql - 是否可以有一个包含 Excel 文件为 "data source"的 SQL 数据库?

vba - 计算行数时出现“对象不支持属性或方法”错误

javascript - 在 HTML5 Canvas 上使用 drawImage 调整颜色

html - 如何使用纯 CSS 显示可调整大小并随浏览器窗口流动的全 Angular 图像网格

Java SWT - 从一个图像溶解(淡化)到下一个图像

用于设置/重置过滤器的 VBA Excel 文件对话框

excel - VBE中的ReplaceLine方法仅替换部分行

c# - 在 WPF 按钮中添加图像