ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用VBA得到当前窗口及可用区域的高度及宽度?

如何用VBA得到当前窗口及可用区域的高度及宽度?

作者:绿色风 分类: 时间:2022-08-17 浏览:184
楼主
wise
Q:如何用VBA得到当前窗口及可用区域的高度及宽度?
A:高度直接是Height,而宽度则直接是Width;但可用区域的高度及宽度,则比较少见。可用区域的高度是usableHeight,而可用区域宽度则是UsableWidth.
具体请看下面例子:

  1. Sub 高度和宽度()
  2. MsgBox ActiveWindow.UsableHeight '当前窗口可用区域的高度
  3. MsgBox ActiveWindow.Height '当前窗口的高度
  4. MsgBox ActiveWindow.UsableWidth '当前窗口可用区域的宽度
  5. MsgBox ActiveWindow.Width '当前窗口的宽度
  6. End Sub
2楼
xyh9999
'调用API显示EXCEL主窗口位置及大小的例子:
'请将下列的几个类型定义及函数定义放在VBA模块的顶部
'首次拷入代码后需保存一下工作簿再运行ShowExcelWindowsSize
Public Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Public Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowRect Lib "user32.dll" (ByVal hWnd As Long, ByRef lpRect As RECT) As Long
Sub ShowExcelWindowsSize()
Dim hWnd As Long, uRect As RECT
hWnd = FindWindow("XLMAIN", Application.Caption)
GetWindowRect hWnd, uRect
MsgBox "该excel窗口大小为:" & _
vbCrLf & "left:" & uRect.Left & _
vbCrLf & "right:" & uRect.Right & _
vbCrLf & "Top:" & uRect.Top & _
vbCrLf & "Bottom:" & uRect.Bottom & _
vbCrLf & "width:" & uRect.Right - uRect.Left & _
vbCrLf & "height:" & uRect.Bottom - uRect.Top
End Sub

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap