【发布时间】:2012-03-03 19:58:12
【问题描述】:
我正在使用以下代码,它很好地将 Excel 图标更改为我自己的图标。
只要我自己打开工作簿,它就可以完美地工作,但是一旦另一个工作簿已经打开,代码似乎不再有任何效果。 它仅在 Excel 完全关闭时才有效,然后我用代码打开工作簿。 一旦我打开另一个工作簿,从一个工作簿更改为另一个工作簿,等等,它就不再起作用了。
我使用的是 Windows 7、Excel 2007。
我希望有人可以提供帮助。 谢谢
Private Sub Workbook_Open()
changeXLIcon "D:/myBOOK/IQS.ico"
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
changeXLIcon "D:/myBOOK/IQS.ico"
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
changeXLIcon "Excel.exe"
End Sub
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
Public Sub changeXLIcon(iconname As String)
Dim Icon&
Icon = ExtractIcon32(0, iconname, 0)
SendMessage32 GetActiveWindow32(), &H80, 1, Icon '< 1 = big Icon
SendMessage32 GetActiveWindow32(), &H80, 0, Icon '< 0 = small Icon
End Sub
【问题讨论】: