excel - 为什么即使在我更新以在 64 位系统上使用后,此代码也无法运行?
问题描述
我正在使用 .vbs 脚本打开 .xlsm 文件以避免出现 Excel 启动画面(这是弹出的小方块,显示 Excel 正在加载)。.vbs 脚本还隐藏了工具栏功能区并将 Excel 2016 置于全屏状态,但引入了令人讨厌的标题栏,其中包含一个迷你 Excel 图标和文件名后的“- Excel”后缀。找到适用于我的 32 位 Excel 的代码。我需要在我的工作笔记本电脑上使用它,但它有 64 位 Excel。我在声明中添加了 PtrSafe,但代码的图标更改部分似乎没有做任何事情。
下面的代码是更改图标的原始代码。由于我尝试在公司笔记本电脑上使用 64 位 Excel 上的代码,因此我不得不在模块 1 代码中的 Declare 和 Function 之间添加 PtrSafe。 编辑:因此,经过进一步研究,我发现当使用长数据类型调用 Windows API 时,需要更新 long。所以它们应该从 Long 更改为 LongPtr 或 LongLong。我都试过了,现在它告诉我 Sub ChangeApplicationIcon() 中的 ExtractIcon32 类型不匹配。我已经更改了 Long (8) 的每个实例。EDIT2: BigBen 指出 Icon& 意味着 Icon As Long。所以我实现了他将 Icon& 更改为“Icon As LongPtr”的编辑。代码运行没有错误,但仍然没有更改图标。编辑3:我已经在我的个人游戏桌面上尝试了 64 位版本的 excel 的修复,但图标仍然没有改变。所以这可能不是因为我公司的笔记本电脑有任何可能的限制。
'******CODE FOR THISWORKBOOK MODULE****
Option Explicit
Private Sub Workbook_Open()
Application.Caption = " - Company Name "
ChangeApplicationIcon
End Sub
'*****************************************
'************CODE FOR MODULE1*************
Option Explicit
Declare Function GetActiveWindow32 Lib "user32" Alias _
"GetActiveWindow" () As Integer
Declare Function SendMessage32 Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function ExtractIcon32 Lib "SHELL32.DLL" Alias _
"ExtractIconA" (ByVal hInst As Long, _
ByVal lpszExeFileName As String, _
ByVal nIconIndex As Long) As Long
'modification of code from Excel Experts E-Letter Archives.
'Original code By Jim Rech can be found by following this
'link > [removed link to avoid rule-breaking]
Sub ChangeApplicationIcon()
Dim Icon&
'*****Change Icon To Suit*******
Const NewIcon$ = "Notepad.exe"
'*****************************
Icon = ExtractIcon32(0, NewIcon, 0)
SendMessage32 GetActiveWindow32(), &H80, 1, Icon '< 1 = big Icon
SendMessage32 GetActiveWindow32(), &H80, 0, Icon '< 0 = small Icon
End Sub
'*****************************************
执行此代码后,全屏 Excel 的标题栏图标应从 Excel 2016 图标更改为记事本图标。
解决方案
推荐阅读
- python - 从网站提取的值制作 .xls 文件
- python - 如何获取 django 变量的子字符串 [HTML]
- xpath - 让 XPath 停在某个深度?
- oauth-2.0 - 在 oauth2 中使用“使用 slack 登录”后如何自动注销用户
- excel - 将 api 与 xml 一起使用时,哪种格式的 url 是正确的
- python - 使用 Twitch 进行身份验证时如何解决超时问题?
- java - 溪流
显示结果 - javascript - Vue如何合并来自同一个对象的两个数组?
- go - Websockets:一个处理程序来统治它们?带备份的最佳案例?
- r - 如何绘制不是从零开始的分组条?