我正在嘗試調整用戶窗體和其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