我正在尝试调整用户窗体和其VBA的控件以适应不同大小的监视器。以下是我使用的代码,基于Ron DeBruin的代码(http://www.rondebruin.nl/mac/mac022.htm)。使用VBA调整用户窗体及其控件使用VBA
本质上,该代码旨在缩放用户窗体的大小和位置及其所有控件。
的问题是我在执行
得到一个错误(如下图所示)"Run-time error '-2147467259(80004005)': Method 'Properties' of object '_VBComponent' failed"
我试着用.Top
更换.Properties("Top")
,我得到了Object doesn't support this property or method
错误。
DeBruin先生的代码使自;但我不知道为什么它不起作用。任何帮助肯定会被赞赏。
Sub ChangeUserFormAndControlsSize()
Dim AppUserform As Object
Dim FormControl As Object
Dim NameUserform As String
Dim SizeCoefficient As Single
SizeCoefficient = wsControls.Range("SizeCoefficient")
NameUserform = "form_APScheduler"
Set AppUserform = ThisWorkbook.VBProject.VBComponents(NameUserform)
With AppUserform
.Properties("Top") = .Properties("Top") * SizeCoefficient '*** ERROR OCCURS HERE
.Properties("Left") = .Properties("Left") * SizeCoefficient
.Properties("Height") = .Properties("Height") * SizeCoefficient
.Properties("Width") = .Properties("Width") * SizeCoefficient
End With
For Each FormControl In AppUserform.Designer.Controls
With FormControl
.Top = .Top * SizeCoefficient
.Left = .Left * SizeCoefficient
.Width = .Width * SizeCoefficient
.Height = .Height * SizeCoefficient
On Error Resume Next
.Font.Size = .Font.Size * SizeCoefficient
On Error GoTo 0
End With
Next FormControl
End Sub
您是否允许通过信任中心访问VBA项目对象模型?这是与对象模型一起工作所必需的。 – Gareth
是的,它已启用。虽然我试图让DeBruin先生的代码正常工作,但最终我希望能够遍历工作簿中的所有用户表单,以便将它们全部缩放。一些影响:对于工作簿中的每个AppUserform .... – BillD
我不确定在哪种情况下的问题,但会警告需要在每台用户表单上的计算机上手动启用对VBA项目对象模型的访问将被使用。 – Gareth