VBA中表格宽度和高度的单位是多少?

Rob*_*cks 4 forms vba resize pixels

我正在为Word 2007编写VBA.

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

我注意到它不是像素

 Me.Width = pixelW   // form appears about 20% larger than the pixel width
Run Code Online (Sandbox Code Playgroud)

而其不缇要么

 Me.Width = (((1 / TwipsPerPixelX()) * pixelW)) / 1)  // form appears very small
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*rkJ 6

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

你的转换公式是错误的(很容易出错).试试这个,包含在一个函数中,以避免代码重复,并可能在每个重复中出现拼写错误

Function nTwipsFromPixelsX(ByVal nPixels As Long) As Long
  nTwipsFromPixels = TwipsPerPixelX() * nPixels
End Function
Run Code Online (Sandbox Code Playgroud)


Phi*_*ier 5

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

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