Es gibt da noch ein potentielles Problem mit der Z-Order. Um das Meldungsfenster zuverlässig oberhalb des Excel-Fensters zu lassen solltest Du den formstyle auf fsTopMost setzen, oder die CreateParams-Methode überschreiben und params.wndParent auf den Rückgabewert von GetForegroundWindow setzen.
Da schauderts mich schon wieder... fsTopMost ist die schlimmste Vergewohltätigung die TForm zu bieten hat. Besonders spaßig wenn sich eine MesageBox dahinter legt und dann das ganze Programm blockiert.
IMHO sollte man sehen dass man sich das WindowHandle der Containeranwendung (in dem Fall Excel) besorgt und dieses bei der Anzeige von Sub-Fenstern oder MessageBoxes gebrauchen.