[VBA/Excel] Knop in taakbalk

Pagina: 1
Acties:
  • 184 views sinds 30-01-2008
  • Reageer

  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
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:

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.


  • Zerora
  • Registratie: September 2003
  • Laatst online: 15:08

Zerora

Ik Henk 'm!

En wat moet die knop in de taakbalk precies doen, want ik snap jouw verhaal niet helemaal. Kun je hier iets over uitleggen?

Trans-life! :::: "All things change, whether from inside out or the outside in. That is what magic is. And we are magic too."


  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
Zerora schreef op 27 april 2004 @ 09:29:
En wat moet die knop in de taakbalk precies doen, want ik snap jouw verhaal niet helemaal. Kun je hier iets over uitleggen?
Het gaat om een knop zoals iedere applicatie die heeft (dus niet die icoontjes rechtsonder). Iedere instantie van IE heeft een knop.

En ik weet, excel heeft zo'n knop in de taakbalk, maar aangezien ik Excel wil verbergen heb ik een nieuwe knop nodig.

Voor de duidelijkheid:

Afbeeldingslocatie: http://mark.shellux.net/taakbalkknop.gif

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


  • Zerora
  • Registratie: September 2003
  • Laatst online: 15:08

Zerora

Ik Henk 'm!

Nu wordt je verhaal gelijk wat duidelijker. :)

Ik begrijp dat je excel als bron applicatie gebruikt en een applicatie (waar jij een knop voor wilt) die naar excel zoekt voor data, of heb ik dat verkeerd?

Edit: Kun je niet die applicatie als nieuwe toepassing laten starten. Dan moet ie een nieuwe knop aanmaken op je taakbalk.

[ Voor 24% gewijzigd door Zerora op 27-04-2004 09:55 ]

Trans-life! :::: "All things change, whether from inside out or the outside in. That is what magic is. And we are magic too."


  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
Zerora schreef op 27 april 2004 @ 09:52:
Nu wordt je verhaal gelijk wat duidelijker. :)

Ik begrijp dat je excel als bron applicatie gebruikt en een applicatie (waar jij een knop voor wilt) die naar excel zoekt voor data, of heb ik dat verkeerd?

Edit: Kun je niet die applicatie als nieuwe toepassing laten starten. Dan moet ie een nieuwe knop aanmaken op je taakbalk.
Niet helemaal het is een applicatie in Excel. Oftewel VBA.
(Om beveilgingsredenen is het niet mogelijk een executabele in bv VB6 te maken)

Deze applicatie leest/schrijft gegevens in het excel werkblad. Maar om gekloot in het werkblad te voorkomen wordt de applicatie onzichtbaar gemaakt middels Application.Visible = False

Dit levert een form op zonder knop in de taakbalk, als je dan even een andere applicatie opent kan je niet zomaar terug, je moet alles eerst minimaliseren en dat is nogal irri.

Het gekke is dat bovenstaande code wel werkt in Office97 op NT maar niet werkt in Office2K op XP...

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


Verwijderd

Kijk eens op deze site:

http://houdt.got.spamvrij.nl

dit is een erg goede site waar veel voorbeelden/dezelfde problemen op voorkomen.

suc6 verder.

modbreak: :Z

[ Voor 26% gewijzigd door curry684 op 25-05-2004 10:34 ]


  • Zerora
  • Registratie: September 2003
  • Laatst online: 15:08

Zerora

Ik Henk 'm!

Markieman schreef op 27 april 2004 @ 12:10:Het gekke is dat bovenstaande code wel werkt in Office97 op NT maar niet werkt in Office2K op XP...
Gek :?
Je zou denken dat het in de nieuwere versies van office ook moet werken.

Trans-life! :::: "All things change, whether from inside out or the outside in. That is what magic is. And we are magic too."


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Markieman schreef op 27 april 2004 @ 12:10:
[...]
Het gekke is dat bovenstaande code wel werkt in Office97 op NT maar niet werkt in Office2K op XP...
idd heel gek en behalve een incorrecte hWnd zie ik ook geen reden waarom niet. Maar misschien kun je er omheen werken door niet de hele applicatie te verbergen maar slechts application.windowstate=xlminimized?
Krijg je min of meer hetzelfde effect maar hou je de excelbutton zelf.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
Niesje schreef op 27 april 2004 @ 13:01:
[...]
idd heel gek en behalve een incorrecte hWnd zie ik ook geen reden waarom niet. Maar misschien kun je er omheen werken door niet de hele applicatie te verbergen maar slechts application.windowstate=xlminimized?
Krijg je min of meer hetzelfde effect maar hou je de excelbutton zelf.
Dat was ook mijn gedacht, maar ik heb de hWnd geverifieerd dmv de GetWindowText-API, en die bleek te kloppen...

Is er iemand die nog een suggestie heeft? Anders toch maar gaan minimizen...

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.

Pagina: 1