You may be able to use this program or some variation. It creates a SAS data set of the name of all sheet in the XLS specified by the WORKBOOK fileref.
[pre]
filename workbook "path to xls of interest";
data work.sheets;
length path script filevar command $256;
path = pathname('WORKBOOK');
script = catx('\',pathname('WORK'),'SHEETNAMESS.vbs');
filevar = script;
/* write the script */
file dummy1 filevar=filevar;
put 'Const ' path=:$quote256.;
put 'Set objExcel = CreateObject("Excel.Application")';
put 'With objExcel';
put +3 '.Visible = False';
put +3 '.DisplayAlerts = False';
put +3 'Set objWorkbook = .Workbooks.Open(path)';
put +3 'Set colSheets = .Worksheets';
put +3 'For Each objSheet In colSheets';
put +6 'WScript.echo objsheet.name';
put +6 'Next';
put +3 '.Application.Quit';
put +3 'End With';
/* close the script file by opening another, not used */
filevar = catx('\',pathname('WORK'),'DUMMY.vbs');
file dummy1 filevar=filevar;
/* look at the script, not necessary but may be useful */
infile dummy2 filevar=script end=eof;
do _n_ = 1 by 1 until(eof);
input;
putlog _n_ z3. +1 _infile_;
end;
/* call the script */
command = catx(' ','cscript //nologo',quote(strip(script)));
infile dummy3 pipe filevar=command end=eof length=l;
do until(eof);
input sheet $varying256. l;
output;
putlog _infile_;
end;
stop;
run;
proc contents order=varnum;
proc print;
run;
[/pre]