如何使用户表单和活动文档并排

时间:2019-03-10 03:35:42

标签: vba ms-word userform

我正在使用MS Word 创建一个项目,该项目由一个活动文档和一个userform组成。

我希望文档和用户表单彼此相邻。 问题是:

  • 如果我将modal用户窗体属性设置为true,则文档将无法编辑
  • ,如果modal属性= false,则放大后的文档可以包含在用户窗体下。我希望既可见又活跃。

我希望将它们都限制在每个区域,例如在通常情况下是两个分开的窗口。

是否有任何VBA代码可以实现?!

非常感谢您的协助。 谢谢。

2 个答案:

答案 0 :(得分:1)

您可以强制ApplicationUserForm更改其属性。

您可以使用

  • Left用于水平轴
  • Top用于垂直轴
  • HeightWidth很不言自明。

如果您熟悉中的position:absolute;,它们的工作方式完全相同

enter image description here

因此,如果我的Excel应用程序处于全屏模式。

enter image description here

  

使用此代码,我点击按钮后就可以打开UserForm   同时确保它不与Excel工作表重叠。

Private Sub CommandButton1_Click()
    UserForm1.Show (0)
    Application.WindowState = xlNormal
    Application.Width = 800
    Application.Left = 0
    Application.Top = 0
    UserForm1.Left = 850
End Sub

enter image description here

很明显,您可以根据需要使用这些属性。

答案 1 :(得分:0)

可以尝试使用非模式userform来放置这样的窗口

enter image description here

Sub test()
Application.ActiveWindow.WindowState = wdWindowStateNormal
Application.ActiveWindow.Top = Application.Top
Application.ActiveWindow.Left = Application.Left
Application.ActiveWindow.Height = Application.UsableHeight
Application.ActiveWindow.Width = Application.UsableWidth / 2
'ActiveWindow.ActivePane.View.Zoom.Percentage = 50  , may control zoom here



UserForm1.Show
UserForm1.StartUpPosition = 0
UserForm1.ScrollBars = fmScrollBarsBoth
UserForm1.KeepScrollBarsVisible = fmScrollBarsBoth
UserForm1.Top = Application.Top
UserForm1.Left = Application.Left + Application.UsableWidth / 2
UserForm1.ScrollHeight = UserForm1.Height + 10
UserForm1.ScrollWidth = UserForm1.Width + 10
UserForm1.Height = Application.UsableHeight 
UserForm1.Width = Application.UsableWidth / 2
'UserForm1.Zoom = 70                 ' may control zoom
End Sub

类似地修改代码的地方可能会垂直平铺。