Changing Excel Icon on the title bar of the Excel application
You can change an icon on the title bar of the Excel application like the image below.
As far as I knew, the icon file (the extension is .ico) needs to be prepared apart from the Excel file.
But here is the way of embedding an icon in a worksheet as an image control, and displaying the picture on the title bar of Excel using the handle of the embedded icon image.
Note: Some kind of ico image doesn't work. I am not sure about the reason.
Add an image control on the worksheet. (In this example, the image control is placed in the Sheet1)
You can add image controls View - Toolbars - Control Toolbox from main menu bar.
Right click for Propertiesof the image control and select appropriate ico file(with an extension of .ico) from picture property box in the properties window.
Now you can see the picture on the Sheet1 as follows.
Place the following in the standard module.
Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) _
Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Const WM_SETICON = &H80
Const ICON_SMALL = 0&
Const ICON_BIG = 1&
MsgBox "Change Excel Icon"
MsgBox "Make Excel Icon default again"
Private Sub ChangeXLIcon(Optional ByVal hIcon As Long = 0&)
Dim hWnd As Long
Dim lngRet As Long
'Get the handle of Excel application
hWnd = FindWindow("XLMAIN", Application.Caption)
lngRet = SendMessage(hWnd, WM_SETICON, ICON_SMALL, ByVal hIcon)
lngRet = SendMessage(hWnd, WM_SETICON, ICON_BIG, ByVal hIcon)
lngRet = DrawMenuBar(hWnd)
Tips and Information about Microsoft Excel｜Masaru Kaji aka Colo