【发布时间】:2017-02-22 07:52:07
【问题描述】:
我想使用 Excel VBA 在特定屏幕上最大化窗口。
我使用了这个代码:
With ActiveWindow
.WindowState = xlNormal
.Left = 1200
.WindowState = xlMaximized
End With
如果监视器 2 位于监视器 1 的右侧,则代码有效。如果相反,则该方法失败(然后我必须使用 -1200)。
这个宏应该可以在不同的电脑上工作,我不知道系统是如何配置的。是否有可能检测连接了多少显示器并直接寻址我想要最大化窗口的相应显示器?
【问题讨论】:
-
我认为可以使用 Windows API 来完成这项工作,但没有内置的 VBA 可以做到这一点。
.WindowState = xlMaximized总是在放置窗口的监视器上最大化 Excel。因此,您需要首先确定这是“值得拥有”的功能还是“必须拥有”的功能,因为没有简单的方法。 -
不幸的是,这是“必须的”。但是用某种“快速而肮脏”的解决方案就可以了。:-)
-
这就是我想说的,没有“又快又脏”。但是看看这个答案stackoverflow.com/a/7241038/3219613 有几个代码 sn-ps 用于通过 Windows API 获取监视器信息。
标签: excel vba multiscreen