ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何通过VBA获取自己显示器的分辨率

如何通过VBA获取自己显示器的分辨率

作者:绿色风 分类: 时间:2022-08-18 浏览:277
楼主
yjzstar
Q:如何通过VBA获取自己显示器的分辨率呢?

A:通过API函数GetSystemMetrics可轻松获得你显示器的分辨率!具体如下:
  1. Private Declare Function GetSystemMetrics Lib "user32" (ByVal nindex As Long) As Long
  2. Sub dd()
  3.     Dim x As Long
  4.     Dim y As Long
  5.     x = GetSystemMetrics(1)
  6.     y = GetSystemMetrics(0)
  7.     MsgBox "您显示器的分辨率为:" & x & "*" & y
  8. End Sub

获取分辨率.rar
2楼
芐雨
原来如此
3楼
LOGO
向楼主请教64位操作系统的话应该怎么样修改代码?

 
4楼
yjzstar
我的WIN7 64位的是可以的啊!要不你这样试试:
  1. Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nindex As Long) As Long
  2. Sub dd()
  3.     Dim x As Long
  4.     Dim y As Long
  5.     x = GetSystemMetrics(1)
  6.     y = GetSystemMetrics(0)
  7.     MsgBox "您显示器的分辨率为:" & x & "*" & y
  8. End Sub
5楼
LOGO
,可以了,谢谢!

 
6楼
yjzstar
7楼
LOGO
PtrSafe <关键字>


PtrSafe 关键字用于此上下文:
Declare 语句
注意
带有 PtrSafe 关键字的 Declare 语句为建议的语法。要使包括 PtrSafe 的 Declare 语句能同时在 32 位和 64 位平台上的 VBA7 开发环境中正确运行,必须先将 Declare 语句中所有需要存储 64 位数的数据类型(参数和返回值)更新为使用 LongLong(对于 64 位整数)或 LongPtr(对于指针和句柄)。为确保与 VBA 版本 6 和更早版本的向后兼容性,请使用下面的构造:

#If Vba7 Then
Declare PtrSafe Sub...
#Else
Declare Sub...
#EndIf


在 64 位版本的 Office 中运行时,Declare 语句必须包括 PtrSafe 关键字

PtrSafe 关键字声明 Declare 语句可以在 64 位开发环境中安全运行。

将 PtrSafe 关键字添加到 Declare 语句中只是表明 Declare 语句显式针对 64 位,而语句中需要存储 64 位(包括返回值和参数)的所有数据类型仍须经过修改才能保存 64 位数:对于 64 位整数,使用 LongLong;对于指针和句柄,使用 LongPtr。

免责声明

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

评论列表
sitemap