2010-02-28 567 views
4

我正在为Word 2007编程VBA。VBA中的窗体宽度和高度单位是什么?

我创建了一个UserForm,我需要使用脚本调整大小。

我注意到,它的不是像素

Me.Width = pixelW // form appears about 20% larger than the pixel width 

而且其不缇要么

Me.Width = (((1/TwipsPerPixelX()) * pixelW))/1) // form appears very small 

那么如何在Office 2007中VBA测量表格的宽度和高度?

回答

6

当通过代码操作窗体上的控件时,默认情况下大小为缇(我相信如果更改表单的ScaleMode属性,您可以选择使用另一个单位)。

您的转换公式错误(很容易出错)。试试这个功能,以避免代码重复,在每个副本中都可能出现拼写错误

Function nTwipsFromPixelsX(ByVal nPixels As Long) As Long 
    nTwipsFromPixels = TwipsPerPixelX() * nPixels 
End Function 
5

使用VBA for Access时,通常用缇和/或厘米表示大小,具体取决于您是从用户界面(厘米)还是从代码(缇)来管理它们。例如,您可以以厘米为单位设置组合框控件的列大小(通过在窗体处于设计模式时在控件属性中输入相应的值)或以缇为单位(通过在窗体打开时更新代码中的这些值) 。

我想这也适用于Word的VBA。我建议你写下cmToTwips和TwipsToCm函数来进行度量转换