Имя: Пароль:
1C
 
Как создать и запустить макрос Excel в 1С
0 Barbossa
 
14.09.07
11:07
Возможно ли ?
1 Barbossa
 
14.09.07
11:08
Пробовал такое - не получилось:

Мак=Excel.VBE.ActiveVBProject.VBComponents.Count()+1;
Excel.VBE.ActiveVBProject.VBComponents.Add(1);
стр=Excel.VBE.ActiveVBProject.VBComponents(Мак).CodeModule;
стр.InsertLines(1,"Sub Test()");
стр.InsertLines(2,"Range(""A1:K1"").Select");
стр.InsertLines(3,"With Selection.Font");
стр.InsertLines(4,".Name = ""Arial");
стр.InsertLines(5,".Size = 12");
стр.InsertLines(6,".Strikethrough = False");
стр.InsertLines(7,".Superscript = False");
стр.InsertLines(8,".Subscript = False");
стр.InsertLines(9,".OutlineFont = False");
стр.InsertLines(10,".Shadow = False");
стр.InsertLines(11,".Underline = xlUnderlineStyleNone");
стр.InsertLines(12,".ColorIndex = xlAutomatic");
стр.InsertLines(13,"End With");
стр.InsertLines(14,"End Sub");
Excel.Application.Run("Test");
2 asady
 
14.09.07
11:12
(1) Вроде макрос должен принадлежать книге
3 asady
 
14.09.07
11:13
(0) а вообще почитай внимательно Михайлова на стр.160-161 (1-е издание)
4 Barbossa
 
14.09.07
11:14
(3) нету ща его с собой. А делать надо.
5 Armando
 
14.09.07
11:23
6 Леха Дум
 
14.09.07
11:33
Сначала необходимо выполнить следующие действия в программе MS Excel: Открыть программу через меню Сервис-Парааметры-Безопасность-Безопасность макросов-Надежные издатели - установить флажок "Доверить доступ к Visual Basic Project". Ну а затем следующий код:
Макрос = "Sub ПодготовкаЛиста()
                   |    Dim RW
                   |    Dim P
                                       ************************
                                       ************************
                   |End Sub";
           
           WorkBook=Excel.Workbooks.Open(ПутьСохранения);
           VBComponents = Excel.ActiveWorkbook.VBProject.VBComponents;
           cntComp = VBComponents.Count();
           Компонет = VBComponents.Add(1);
           VBComponents.Item(cntComp+1).CodeModule.InsertLines(1,Макрос);
//            Excel.Application.Run("ПодготовкаЛиста"); //не всегда отрабатывает так как ждешь - открываем файлик и выполняем макрос ручками :)
       //    VBComponents.Remove(Компонет); //а затем удаляем его
           Excel.ActiveWorkbook.Save();
           Excel.ActiveWorkbook.Close();
           Excel.Quit();
таблицу mxl сохранял в ексель а затем открывал и вставлял макрос
7 smaharbA
 
14.09.07
11:36
Зачем ? (с)
8 Barbossa
 
14.09.07
11:48
(6) Спасибо, теперь все робит.
9 Леха Дум
 
14.09.07
11:48
(7) я тоже не представлял - зачем, а вот потребовалось бланки заказа в ексель формировать для клиентов
Закон Брукера: Даже маленькая практика стоит большой теории.