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");
|
|
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 сохранял в ексель а затем открывал и вставлял макрос
|
|