介绍:
\n\n当我尝试将 Visio-UserForms 相对于调用的 Visio 应用程序窗口定位时,遇到了问题,这在其他 MS Office 应用程序中也是可能的。
\n通常我会使用第一个块(Excel)中的调用代码来在应用程序窗口的相对位置打开用户窗体。
\n这个问题的重要属性是.Left和.Top,它们返回窗口相对于屏幕的偏移量。
如果我在 Visio 中尝试相同的操作(代码块 2),我会遇到以下问题:\nVisio 应用程序 ( vsApp) 的应用程序对象不支持.Top属性.Left,因此显然我得到了标准Run.time error "438": \xe2\x80\x9cObject doesn\'t support this property or method\xe2\x80\x9d
问题:
\n\n我的问题是是否有一种替代的相对干净的方法来获取调用应用程序的窗口位置(甚至可能与应用程序无关)。环顾四周,有很多针对 Excel 的解决方案,但据我所知,没有针对 Visio 的解决方案。
\n\n这是我的第一个问题,所以如果我提交了错误的内容或错过了规则/指南,请告诉我。
\n\n代码:
\n\n在这两种情况下,FooUserForm 都是一个简单的用户表单,带有一个隐藏表单的按钮Me.Hide。下面的代码位于标准模块中
Excel 中的代码:
\n\nOption Explicit\n\nSub openFooUserForm()\n\n Dim fooUF As FooUserForm\n Set fooUF = New FooUserForm\n\n Dim exApp As Excel.Application\n Set exApp = …Run Code Online (Sandbox Code Playgroud)