Hi:
I guess my thought would be to avoid a macro VARIABLE for the string and instead use macro conditional logic to build the whole procedure statement. This would mean having a macro program. Or you could work with Tech Support to see how macro quoting functions might be used effectively in this situation. I also thought there were some good suggestions here:
http://support.sas.com/forums/message.jspa?messageID=20119#20119
You could also try to simplify the format and see whether there is a simpler version of the format that would work for you. I don't really use Excel formats enough to understand how the format is being constructed from this string.
An simple example of conditionally specifying a whole procedure statement is shown below using ODS HTML, which is roughly the equivalent of what you want to do.
cynthia
[pre]
%macro dostmt(sel=X);
proc print data=sashelp.class;
title "The selection value is: &sel";
%if %upcase(&sel) = P %then %do;
var name / style(header) = {background=purple};
%end;
%else %if %upcase(&sel) = D %then %do;
var name / style(header) = {background=pink};
%end;
%else %do;
var name / style(header) = {background=cxdddddd};
%end;
var age height;
run;
%mend dostmt;
ods html file='sel_p.html' style=sasweb;
%dostmt(sel=P);
ods html close;
ods html file='sel_d.html' style=sasweb;
%dostmt(sel=D);
ods html close;
ods html file='sel_o.html' style=sasweb;
%dostmt(sel=o);
ods html close;
[/pre]