Показать сообщение отдельно
Старый 06.06.2006, 12:26   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Jox
для аналогии с VBA классы, соответствующие объектам Application, WorkBook, WorkSheet и Range. При таком подходе их можно просто дополнять по мере надобности не меняя основную логику функционала, плюс, для прогеров, которые работали с VBA, будет проще их понять.
А зачем? Эти же объекты и так вроде на виду, если через COM...

COM xlApp; // Excel.Application
COM wbks, wbk; // Workbooks, Workbook
COM wkss, wks; // Worksheets, Worksheet
COM rng; // Range
...........................
xlApp = new COM("Excel.Application");
wbks = xlApp.Workbooks();
wbk = wbks.Add();
wkss = wbk.Worksheets();
wks = wkss.Item(1);
rng = wks.Range("E6");
rng.Value2(123);
xlApp.Visible(true);

Да, безусловно неудобно, что нельзя писать через несколько точек типа xlApp.Workbooks(1).Worksheets(1).Range("E6"), но в принципе привыкаешь. Зато родные эксельные объекты выглядят вполне прозрачно... Ну, создали Вы свой оригинальный Worksheet, нагрузили его функционалом, которого нет в эксельном аналоге (неужели чего-то и вправду не хватает? ) - пришёл прогер VBA и растерялся, потому что ему будет непривычно ощущать функционал, который он не ожидает увидеть у этого объекта...

ИМХО, не переписываете ли Вы Excel?