Hi Matthias,
I thought about it some more and if you are only concerned with axis labels and legend for say one layer, could be quicker to just set them individually rather than use theme, with code such as below.
Theme could be a better option if you have many layers and many other proerties to set.
Easwar
OriginLab
void change_each_font()
{
// Point to active graph layer
GraphLayer gly = Project.ActiveLayer();
GraphObject gobj;
// Point to X axis label object which has name XB, and change its font
gobj = gly.GraphObjects("XB");
gobj.Label.Font.Size.nVal = 30;
// Point to Y axis label object which has name YL, and change its font
gobj = gly.GraphObjects("YL");
gobj.Label.Font.Size.nVal = 30;
// Point to Legend label object which has name Legend, and change its font
gobj = gly.GraphObjects("Legend");
gobj.Label.Font.Size.nVal = 30;
// Can see what properties exist by loading into tree and dumping to script window
Tree tr;
tr = gobj.Label;
out_tree(tr);
}