Excel VBA 用户窗体编辑器不断自行调整大小

Excel VBA Userform editor keeps resizing by itself

我在 Excel 中创建了一个用户表单并保存了它。当我打开编辑器时,表单会自动调整大小。当我单击表单右下角调整其大小时,它会自动弹回到原来的预期大小(参见下面的 GIF)。

这也会影响运行时的表单。这是 Microsoft 需要修复的错误,还是有某种我可以禁用的自动调整大小设置?

我确实有这个硬编码预期大小的初始化代码:

Private Sub UserForm_Initialize()
    Me.Width = 402.6
    Me.Height = 430.8
    
    Me.StartUpPosition = 0
    Me.Left = Application.Left + (0.5 * Application.Width) - (0.5 * Me.Width)
    Me.Top = Application.Top + (0.5 * Application.Height) - (0.5 * Me.Height)
End Sub

感谢@braX 为我指明了正确的方向。好像是DPI awareness issue.

我的解决方案是检查 Optimize for compatibility 选项,然后重新启动 Excel。

对我来说,以下方法有效。您可能想检查一下; https://www.mrexcel.com/board/threads/userforms-shrink-on-successive-openings-of-an-excel-file.1078705/ 将以下代码添加到用户窗体代码中至少可以保持显示正确。

Private Sub UserForm_Initialize()
    With frm40_Overview1
        Height = 600
        Width = 800
    End With
    Application.ScreenUpdating = True
End Sub

干杯