Hello guys,
I need to create data driven macro based on table values to export several ppt slides.
this is the table called "Acc":
Acc |
261726 |
109338 |
79878 |
I need something like the below but instead of number 1-3 assign the values from the table and generate slide for each of the value:
%MACRO generate;
%do i=1 %to 3 ;
goptions reset= all device= PNGT;
ods powerpoint
file="&p\RegionalActivity_&i..ppt" nogtitle nogfootnote
style=htmlblue;
options nodate nonumber;
goptions reset= all; ods graphics / reset=all;
ods region;
proc odstext;
p "&i"/ style = [font_size = 16pt color=#2f4696 background=a00000000];
run;
ods layout end;
ods powerpoint close;
%END;
%MEND generate;
%Generate;
Can you please advise how to define the variables? Apologies if this was already described but I haven't found appropriate answer.
Thanks!
A typical case for call execute:
%MACRO generate(i);
goptions reset= all device= PNGT;
ods powerpoint
file="&p\RegionalActivity_&i..ppt" nogtitle nogfootnote
style=htmlblue;
options nodate nonumber;
goptions reset= all; ods graphics / reset=all;
ods region;
proc odstext;
p "&i"/ style = [font_size = 16pt color=#2f4696 background=a00000000];
run;
ods layout end;
ods powerpoint close;
%MEND generate;
data _null_;
set acc;
call execute('%generate(' !! trim(acc) !! ');');
run;
A typical case for call execute:
%MACRO generate(i);
goptions reset= all device= PNGT;
ods powerpoint
file="&p\RegionalActivity_&i..ppt" nogtitle nogfootnote
style=htmlblue;
options nodate nonumber;
goptions reset= all; ods graphics / reset=all;
ods region;
proc odstext;
p "&i"/ style = [font_size = 16pt color=#2f4696 background=a00000000];
run;
ods layout end;
ods powerpoint close;
%MEND generate;
data _null_;
set acc;
call execute('%generate(' !! trim(acc) !! ');');
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.