Excel is actually working correctly – it will come out of the Full Screen Mode whenever it is Resized. Unfortunately what sounds like a very simple request turns out to be a lot more complex.
Using Workbook_Activate() will trigger when you switch Workbooks,
Not when you Minimize or Maximize the Excel Application which is what you are actually asking for.
Another technique using a Class for example will also fail because it will capture a Window or Workbook Resize or Activate Event which again is
Not the Excel Application Minimize or Maximize.
A CBT Hook will work to some extent allowing you to capture the HCBT_MINMAX Message to Excel and then further querying LowW(lParam) = SW_MAXIMIZE or SW_RESTORE. I do not advise going down this route unless you want to spend some time watching Excel fall over (although I do have a stable hook should you wish to use it)...
I use a fine timer thread to capture an exit from Full Screen via a Resize or Escape being pressed Excel 2007/2010 when I re-style the Excel Application from a true Full Screen View. It by no means an ideal solution but perhaps this is something that you could consider. You could fire the thread for say every 1/10th of a second and force Excel Full Screen should you capture an Application.WindowState = xlMaximized following a Minimize to the Taskbar.
Unless anyone else can offer an alternative method, it may be worth trying.
I have an (old) article on a Timer here:
http://ezinearticles.com/?Excel-Full-Screen-View---The-Fundamentals&id=5838401
Alternatively if you email me I can send you a CBT Hook, rudimentary but working at least! Good luck.
mark@kubiszyn.co.uk