Stu,
Functions called from worksheet cells can only return a value; they cannot
change the Excel environment in any way, including changing the value of any
cell. The reason is that Excel must keep a model of what cells depend on
what other cells, called the "dependency tree", in order to calculate cells
in the proper order. Since Excel cannot know what cells might be modified by
a VBA macro, it prevents you from changing any cell.
So the short answer is that you can't do this.