Невозможно изменить значок Excel (в панели задач) с VBA - PullRequest
0 голосов
/ 21 апреля 2011

Привет! Я использую следующий код (извините, я не знаю, откуда я его взял), чтобы изменить значок Excel в WINDOWS 'TASKBAR с обычного значка Excel на созданный мной значок.

Но это не работает ... изменяет только маленький значок в верхнем левом углу приложения (не на панели задач)

Однако, когда я запускаю код в окне VBA напрямую, онменяет значок на панели задач окна vba на мой значок!

Я предполагаю, что он видит активное окно как открываемое в данный момент окно (окно VBA при непосредственном запуске), но при открытии книги оно не действует таким же образом...

Я использую Windows 7

Я надеюсь, что кто-то может помочь ....

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
Sub ChangeApplicationIcon()


     '*****Change Icon To Suit*******
    NewIcon = ThisWorkbook.Path & "\MYICON.ICO"
     '*****************************

    Icon = ExtractIcon32(0, NewIcon, 0)
    SendMessage32 GetActiveWindow32(), &H80, 0, Icon '< 1 = big Icon
    SendMessage32 GetActiveWindow32(), &H80, 1, Icon '< 0 = small Icon

    ActiveWindow.Caption = "MY APPLICATION" 


End Sub

1 Ответ

2 голосов
/ 22 апреля 2011

Значок на панели задач представляет собой 32-пиксельный значок.Вы устанавливаете как маленькие, так и большие значки как 16-пиксельные.Используйте значок 32 пикселя для ICON_BIG.

...