Frage zu einem Makro fürs Ändern des Excelicons?
22.09.2006 19:48:53
Kasimir
ich steh mal wieder vor einem Problem und weiß die Lösung nicht. Ich habe im Netz nachfolgendes Makro gefunden, mit dem man das Excelicon in der Titelleiste und das Icon in der Schaltfläche aus der Taskleiste ändern kann. Das funktioniert auch. Nachfolgend erst mal das Makro
'Get the handle for a window
Declare Function wapiFindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'Extract an icon from a file
Declare Function wapiExtractIcon Lib "shell32.dll" Alias "ExtractIconA" _
(ByVal hInst As Long, ByVal lpszExeFileName As String, _
ByVal nIconIndex As Long) As Long
'Send a Windows message
Declare Function wapiSendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, _
ByVal lparam As Long) As Long
'Windows message types
Public Const WM_SETICON = &H80
Sub changeicon()
Dim sName As String
sName = "C:\Abbildungen\OMI.ico"
Call procSetIcon(sName)
End Sub
Sub procSetIcon(sIconPath)
Dim a As Long, ihWnd As Long, ihIcon As Long
'Get the handle of the Excel window
ihWnd = wapiFindWindow("XLMAIN", Application.Caption)
'Get the icon from the source
ihIcon = wapiExtractIcon(0, sIconPath, 0)
If ihIcon > 1 Then
'Set the big (32x32) and small (16x16) icons
a = wapiSendMessage(ihWnd, WM_SETICON, True, ihIcon)
a = wapiSendMessage(ihWnd, WM_SETICON, False, ihIcon)
End If
End Sub
Wenn das Makro ausgeführt wurde, ändern sich die Icons. Nur wenn ich über das folgende Makro eine bestimmte Datei im Hintergrund öffne, ändert sich das Icon in der Taskleistenschaltläche wieder in das Excel-Icon. Man kann es dann auch nicht mehr über das obige Makro ändern. Nachfolgend erst mal das Makro, mit dem ich die Datei öffne.
Option Explicit
Sub Objekt_auswählen()
Dim Sheet_Name As String, Verzeichnis As String, Dateiname As String
Dim Baujahr As Integer
Application.ScreenUpdating = False
Sheet_Name = ActiveWindow.Caption
Verzeichnis = "C:\Daten\Preislisten\"
Workbooks.Open Filename:=Verzeichnis & "Objekt.xls", Password:="1234567890"
Dateiname = ActiveWorkbook.Name
With Windows(Dateiname)
.Visible = False
End With
With Windows(Sheet_Name)
.Activate
End With
On Error Resume Next
Baujahr = Workbooks(Dateiname).Sheets("Vorlage").Range("R2")
End Sub
Hat jemand von Euch eine Idee, warum das so ist? Woran das liegt weiß ich ja, es liegt am Öffnen der zweiten Datei. Was ich nur nicht weiß. warum das Icon sich wieder zurück ändert und warum ich es dann nicht wieder über das Makro für das Ändern des Icons zurück ändern kann.
Kann sich mal jemand die Makros anschauen und hat dann eventuell einen Lösungsansatz für mich. Denn wie einleitend geschrieben, stehe ich auf dem Schlauch.
Danke und Gruß,
Kasimir