Имя: Пароль:
1C
 
как удалить Excel-макрос из 1С ?
0 Radio_1C
 
28.12.06
09:25
в 1С-ке пишу на VB и не получается удалить макрос из Excel-евского файла.
1 smaharbA
 
28.12.06
09:34
Доверие и безопасность
2 smaharbA
 
28.12.06
09:34
А вообщето - зачем ?
3 Radio_1C
 
28.12.06
09:40
(1) с доверием нормально.
принцип такой. я открываю Excel, добавляю туда макрос, запускаю его, забираю данные после макроса, теперь надо удалить этот макрос, и добавить такой же но с измененными строками и так далее пока цикл не кончится.
еще предложение. а может подскажете как в добавленном макресе изменить код макроса?
4 smaharbA
 
28.12.06
10:10
(3) Дурной метод.
Что такого в макросе может быть чего без него из 1С не сделать ?
...
А удалять так примерно -

Модули=Книга.VBProject.VBComponents;
Для к=-Модули.Count По -1 Цикл
 Модуль = Модули.Item(-к);
 Если Модуль.Type <> 100 Тогда
   Модули.Remove(Модуль);
 Иначе
   Модуль.CodeModule.DeleteLines(1, Модуль.CodeModule.CountOfLines);
 КонецЕсли;
КонецЦикла;

Но чую - мудришь черезчур...
5 Radio_1C
 
28.12.06
11:10
спасибо
6 GrayT
 
28.12.06
11:16
(4)Порой проще там написать, чем через олю извращаться.
А еще подобный алгоритм был у меня реализован в МД_визио - сперва один макрос отрабатывал, а перед сохранением екселевского файла замещался на другой (программно сгенерированный)
7 Radio_1C
 
28.12.06
11:25
ну дело в том чтобы программно не составлять 1000 макросов, я их заменяю один другим после выполнения и все ок. вот.
8 Radio_1C
 
28.12.06
12:22
а кто знает как тем же кодом 1С удалить из Excel'я лист с именем "ТабЧасть" ?
9 smaharbA
 
28.12.06
12:59
(8) Я
10 Radio_1C
 
28.12.06
13:26
подскажи а?
11 Radio_1C
 
28.12.06
13:27
(10) дело в том что если макрос выполнять в экселе то выходит сообщение о просьбе нажать Ок для удаления данного листа. а когда программным путем, то ни сообщения не выходит, ни удаляет.
13 smaharbA
 
28.12.06
15:16
(11)
Ексель=СоздатьОбъект("Excel.Application");
Книга=Ексель.WorkBooks.Open(Файл);
Книга.WorkSheets("ТабЧасть").Delete();