Ik heb een klein probleempje, op mijn stage gebruik ik voor het ontwikkelen van een bepaalde applicatie VBA in Excel 97 op NT 4. Gelukkig gaat dit uitermate lekker.
Om makkelijk te kunnen schakelen naar een programma wil ik een knop in de taakbalk. Dit heb ik bereikt middels de volgende code, die aangeroepen wordt binnen UserForm_Initialize:
Nu is het zo dat er binnen afzienbare tijd een migratie naar Windows XP met de nieuwste Excel gaat plaatsvinden.
Om deze reden heb ik het thuis op mijn WindowsXP machine met Office 2000 getest, en nu verschijnt er gewoon geen knop in de taakbalk.
Misschien dat dit voor iemand een bekend probleem is en mij daar mee kan helpen. Waarschijnlijk ben ik de enige in de wereld die een taakbalkknop in een Excel applicatie wilt. Dit aangezien op internet alleen het bovenstaande stukje code te vinden is. (Het is officieel voor een standalone VB versie)
In het kort, weet iemand waarom bovenstaande code wel werkt in NT4/Office97/Excel/VBA maar niet in XP/Office2k/Excel/VBA?
Voor de duidelijkheid: De functie getwindowhandle zoekt de handle naar aanleiding van de caption van het form aangezien in Excel de property hWnd niet bestaat. De geretourneerde hWnd heb ik geverifieerd op juistheid.
Om makkelijk te kunnen schakelen naar een programma wil ik een knop in de taakbalk. Dit heb ik bereikt middels de volgende code, die aangeroepen wordt binnen UserForm_Initialize:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| hWnd = GetWindowHandle(rfrmForm)
'Indien niet gevonden, stoppen
If hWnd = 0 Then
Exit Sub
End If
'Lees de window style
lWindowStyle = GetWindowLong(hWnd, mlGWL_EXSTYLE)
'Voeg WS_EX_APPWINDOW toe, dit betekend dat we een
'plekje in de taakbalk willen
lWindowStyle = lWindowStyle Or mlWS_EX_APPWINDOW
'WS_EX_APPWINDOW en WS_EX_TOOLWINDOW mogen NOOIT samen aanstaan
If (lWindowStyle And mlWS_EX_TOOLWINDOW) = mlWS_EX_TOOLWINDOW Then
lWindowStyle = lWindowStyle And (Not mlWS_EX_TOOLWINDOW)
End If
'Schrijf de waarde terug
Call SetWindowLong(hWnd, mlGWL_EXSTYLE, lWindowStyle) |
Nu is het zo dat er binnen afzienbare tijd een migratie naar Windows XP met de nieuwste Excel gaat plaatsvinden.
Om deze reden heb ik het thuis op mijn WindowsXP machine met Office 2000 getest, en nu verschijnt er gewoon geen knop in de taakbalk.
Misschien dat dit voor iemand een bekend probleem is en mij daar mee kan helpen. Waarschijnlijk ben ik de enige in de wereld die een taakbalkknop in een Excel applicatie wilt. Dit aangezien op internet alleen het bovenstaande stukje code te vinden is. (Het is officieel voor een standalone VB versie)
In het kort, weet iemand waarom bovenstaande code wel werkt in NT4/Office97/Excel/VBA maar niet in XP/Office2k/Excel/VBA?
Voor de duidelijkheid: De functie getwindowhandle zoekt de handle naar aanleiding van de caption van het form aangezien in Excel de property hWnd niet bestaat. De geretourneerde hWnd heb ik geverifieerd op juistheid.
You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.