Показать сообщение отдельно
  #11  
Старый 13.09.2011, 07:10
Zhigalov Zhigalov вне форума
Начинающий
 
Регистрация: 27.05.2009
Сообщения: 100
Репутация: -1277
По умолчанию

Сам спроси сам ответь =)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  E, B: OleVariant;
  i: OleVariant;
begin
   E := CreateOleObject( 'Excel.Application' );
   B := E.Workbooks.Add;
   E.Visible := true;
   i := E.VBE.ActiveVBProject.VBComponents.Count;
   E.VBE.ActiveVBProject.VBComponents.Add( 1 );
   // Добавляем в модуль книги код на VB
   B.VBProject.VBComponents.Item( i+1 ).CodeModule.InsertLines( 1, 'Sub Macros()' );
   B.VBProject.VBComponents.Item( i+1 ).CodeModule.InsertLines( 2, '   ActiveSheet.Shapes.AddChart.Select' );
   B.VBProject.VBComponents.Item( i+1 ).CodeModule.InsertLines( 3, 'ActiveChart.ChartType = xlLine' );
   B.VBProject.VBComponents.Item( i+1 ).CodeModule.InsertLines( 4, 'End Sub' );
   // Добавляем то же самое в код листа
   B.VBProject.VBComponents.Item( 'Лист1' ).CodeModule.InsertLines( 1, 'Sub Macros()' );
   B.VBProject.VBComponents.Item( 'Лист1' ).CodeModule.InsertLines( 2, '   ActiveSheet.Shapes.AddChart.Select' );
   B.VBProject.VBComponents.Item( 'Лист1' ).CodeModule.InsertLines( 3, 'ActiveChart.ChartType = xlLine' );
   B.VBProject.VBComponents.Item( 'Лист1' ).CodeModule.InsertLines( 4, 'End Sub' );
   E.Application.Run( 'Macros' );
   E.Application.Run( 'Лист1.Macros' );

end;
Ответить с цитированием