以点为单位确定可见工作表面积大小

我正在尝试确定可见的工作表面积。 到目前为止,我已经尝试了Application.Width ,但是这给了我包括滚动条在内的整个区域,同样, Application.Height包含了Ribbon和水平滚动条。 我所需要的只是这个可视工作表区域的大小。

我迄今尝试的东西是看可见范围。 例如,如果我能看到A1到AA40,那么我可以使用代码

  Debug.Print ws.Range("A1:AA40").Width Debug.Print ws.Range("A1:AA40").Height 

唯一的问题是,如果我能看到AB列的一半和41行的一半,那么我没有全尺寸。 此外,如果我决定将应用程序窗口大小更改为屏幕的一半,则不可调整。

我没有必要转换成像素数量,我只需要点大小。 有没有人知道一种方法来获得可见区域大小,或者至less如何调整范围来适应只有这个可见区域?

您可以访问ApplicationWindows集合,并使用该集合的项目的WidthHeight属性。 例如

 Debug.Print Application.Windows(1).Width Debug.Print Application.Windows(1).Height 

你也可以参考ActiveWindow并从中获取属性。

例:

在这里输入图像说明