Не совсем элегантно, но работает (основной цикл должен вызываться один раз после ClearAll):
ActionMenu["Clear",
{"Clear global variables" :> (ClearAll["Global`*"];
Block[{nb}, nb = CreateDocument[ExpressionCell[42, "Input"],
Visible -> False]; SelectionMove[nb, All, Notebook];
SelectionEvaluate[nb]; NotebookDelete[nb];])}]
Конечно, следует использовать новую функцию Mathematica 8 NotebookEvaluate, но, похоже, неработать здесь (то есть
ActionMenu["Clear",
{"Clear global variables" :> (ClearAll["Global`*"];
Block[{nb}, nb = CreateDocument[ExpressionCell[42, "Input"],
Visible -> False]; NotebookEvaluate[nb];
NotebookDelete[nb];])}]
выдает сообщение об ошибке
Could not process unknown packet "1".