Icon in Excel Kopfzeile ändern

Bild

Betrifft: Icon in Excel Kopfzeile ändern von: Holger Wächter
Geschrieben am: 17.03.2005 15:23:46

Hallo,

ich hatte mal einen Code von euch bekommen, womit ich das Icon in der Kopfzeile ändern kann, aber ich habe den nicht zum laufen bekommen. Es kommt zwar kein Fehler aber es tut sich nichts.

Folgender Code:

'*** Win32 API

Function Declarations - Für Logo ändern ***
Declare 
Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare 
Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Declare 
Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Declare 
Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lparam As Long) As Long
'*** Win32 API Constant Declarations - Für Logo ändern ***
Const WM_SETICON As Long = &H80
... und hier die Prozedur zum aufrufen:
Sub Excel_Icon_ändern()
'*** set XL's main window icon ***
Excel_Icon "D:\Programme\OfficeXP\Office10\forms\1031\NOTEL.ICO"
'*** restore XL's main window icon ***
Excel_Icon
   
'set active workbook's window icon ***
Excel_Icon "D:\Programme\OfficeXP\Office10\forms\1031\CNFNOT.ICO", ActiveWorkbook.Name
   
'restore active workbook's window icon ***
Excel_Icon , ActiveWorkbook.Name
End Sub



Was ich nicht weis welchen Pfad ich für die Icons angeben muss und welchen für das Excel Icon.

Kann mir da jemand helfen

MfG

Holger Wächter
Bild


Betrifft: AW: Icon in Excel Kopfzeile ändern von: u_
Geschrieben am: 17.03.2005 16:21:21

Hallo,
ich glaube, das ist besser:
https://www.herber.de/mailing/158701h.htm

Gruß


Bild


Betrifft: AW: Icon in Excel Kopfzeile ändern von: Holger Wächter
Geschrieben am: 17.03.2005 16:52:50

Genau den Code hatte ich damals bekommen. Ich habe den nur hintereinander geschrieben in komplette Zeilen.
Ich habe den nicht zum laufen bekommen.
Was könnte der Fehler sein?

MfG

Holger Wächter


Bild


Betrifft: AW: Icon in Excel Kopfzeile ändern von: Nepumuk
Geschrieben am: 17.03.2005 17:05:17

Hallo Holger,

du musst natürlich dafür Sorgen, dass die Icons auch vorhanden sind. Hier mal der etwas überarbeitete Code:


Option Explicit

Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" ( _
     ByVal hInst As Long, _
     ByVal lpszExeFileName As String, _
     ByVal nIconIndex As LongAs Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
    ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Integer, _
    ByVal lParam As LongAs Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
     ByVal lpClassName As String, _
     ByVal lpWindowName As StringAs Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _
     ByVal hWnd1 As Long, _
     ByVal hWnd2 As Long, _
     ByVal lpsz1 As String, _
     ByVal lpsz2 As StringAs Long

Private Const WM_SETICON As Long = &H80

Private Sub fncSetXLWindowIcon(Optional IconFile As StringOptional WorkbookName As String)
    Dim XLMAINhWnd  As Long, XLDESKhWnd As Long, EXCEL7hWnd  As Long
    Dim TargetWindowhWnd As Long, VirtualIcon As Long
    If Not WorkbookName = vbNullString Then
        XLMAINhWnd = FindWindow("XLMAIN", Application.Caption)
        XLDESKhWnd = FindWindowEx(XLMAINhWnd, 0, "XLDESK", vbNullString)
        TargetWindowhWnd = FindWindowEx(XLDESKhWnd, 0, "EXCEL7", WorkbookName)
    Else
        XLMAINhWnd = FindWindow("XLMAIN", Application.Caption)
        TargetWindowhWnd = XLMAINhWnd
    End If
    If TargetWindowhWnd = 0 Then Exit Sub
    If IconFile = vbNullString Then
        VirtualIcon = 0
    Else
        VirtualIcon = ExtractIcon(0, IconFile, 0)
        If VirtualIcon <= 1 Then Exit Sub
    End If
    SendMessage TargetWindowhWnd, WM_SETICON, False, VirtualIcon
End Sub

Sub test1_fncSetXLWindowIcon() 'Applicationicon - stezen
    fncSetXLWindowIcon "C:\Programme\Microsoft Office\Office\forms\1031\NOTEL.ICO"
End Sub

Sub test2_fncSetXLWindowIcon() 'Applicationicon - zurückstezen
    fncSetXLWindowIcon
End Sub

Sub test3_fncSetXLWindowIcon() 'Mappenicon - setzen
    fncSetXLWindowIcon "C:\Programme\Microsoft Office\Office\forms\1031\CNFNOT.ICO" _
        , ActiveWorkbook.Name
End Sub

Sub test4_fncSetXLWindowIcon() 'Mappenicon - zurücksetzen
    fncSetXLWindowIcon , ActiveWorkbook.Name
End Sub


Damit du die Änderung des Mappenicons überhaupt siehst, das das Fester nicht maximiert sein.

Gruß
Nepumuk


Bild


Betrifft: AW: Icon in Excel Kopfzeile ändern von: Holger Wächter
Geschrieben am: 17.03.2005 17:24:11

Danke,

jetzt hat es geklappt. Ihr wisst hier auch alles. Spitze!

Weisst Du vielleicht wo es so eine kleine Icon - Sammlung gibt.

MfG

Holger Wächter


Bild


Betrifft: AW: Icon in Excel Kopfzeile ändern von: Nepumuk
Geschrieben am: 17.03.2005 17:34:02

Hallo Holger,

ich habe einen Ordner mit ~ 1500 Icons. Dazu ein kleines Programm, um Icons aus DLL's und EXE - Dateien zu extrahieren. Schreib mir eine Mail (guckst du in die Profile), dann schicke ich ihn dir.

Gruß
Nepumuk


Bild


Betrifft: AW: Icon in Excel Kopfzeile ändern von: Holger Wächter
Geschrieben am: 17.03.2005 17:43:09

Habe Dir die E-Mail geschrieben. Danke schon mal für alles

MfG

Holger Wächter


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Icon in Excel Kopfzeile ändern"