Я немного другое решение придумал. Чтобы каждый раз не проверять в документе существование Name, я все Names загоняю в List сразу после открытия шаблона, потом уже через ф-ию inRange() проверяю имя ячейки в List.toString().
Не знаю, какой способ быстрее.
PHP код:
void prepareCellNamesList()
{
COM comNames, comName;
List list;
int i;
;
list = new List(Types::String);
comNames = m_comDocument.Names();
for (i=1; i<=comNames.count(); i++)
{
comName = comNames.Item(i);
list.addEnd(comName.Name());
}
namesList = strRem(list.toString(), "<>");
}
// ADD by KDV (7-Сен-2005) // KDV_LIZ_
boolean checkCellName(BookMark _bookMark)
{
if (namesList)
return inRange(namesList, _bookMark);
else
return true;
}
это два новых метода в COMExcelDocument_RU
и в ClassDeclaration объявил
Str namesList; // именованые ячейки