//Пример показывает как из 1С вызывается MS Word, вставляется макрос и запускается! //Макрос пишет на листе Добрый день!, https://helpf.pro и сохраняет файл в D:/primer.doc ПримерМакроса = "Sub VBAprimer() |S_election.TypeText Text:=""Добрый день!"" |Application.Keyboard (1033) |S_election.TypeText Text:="": https://helpf.pro"" |S_election.TypeParagraph |S_election.MoveUp Unit:=wdLine, Count:=2 |S_election.EndKey Unit:=wdLine, Extend:=wdExtend |S_election.Style = ActiveDocument.Styles(""Заголовок 1"") |S_election.MoveDown Unit:=wdLine, Count:=1 |S_election.HomeKey Unit:=wdLine |S_election.EndKey Unit:=wdLine, Extend:=wdExtend |S_election.Style = ActiveDocument.Styles(""Заголовок 2"") |ActiveDocument.SaveAs FileName:=""D:/primer.doc"", FileFormat:= _ | wdFormatDocument, LockComments:=False, Password:="""", AddToRecentFiles:= _ | True, WritePassword:="""", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _ | False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ | SaveAsAOCELetter:=False |End Sub"; // Создание объекта Word = Новый COMОбъект("Word.Application"); Word.Documents.Add(); //VBComponents = Word.VBE.ActiveVBProject.VBComponents; VBComponents = Word.ActiveDocument.VBProject.VBComponents; Count = VBComponents.Count(); VBComponents.Add(1); VBComponents.Item(Count + 1).CodeModule.I_nsertLines(1, ПримерМакроса); Word.Application.Run(VBAprimer"); Word.Quit(); Word = Неопределено;
// Если не будет работать - возможно установлен высокий уровень безопасности. Понизьте до среднего ... Процедура Сформировать() Попытка W=СоздатьОбъект("Word.Application"); Исключение Возврат; КонецПопытки; W.Documents.Add(); i = W.VBE.ActiveVBProject.VBComponents.Count(); W.VBE.ActiveVBProject.VBComponents.Add (1); W.VBE.ActiveVBProject.VBComponents.Item(i + 1).CodeModule.I_nsertLines (1, "Sub Golif()"); W.VBE.ActiveVBProject.VBComponents.Item(i + 1).CodeModule.I_nsertLines (2, "MsgBox " + """" + "Работает" + """"); W.VBE.ActiveVBProject.VBComponents.Item(i + 1).CodeModule.I_nsertLines (3, "End Sub"); W.Application.Run ("Golif"); W=""; КонецПроцедуры