Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: jfd от 24 июня 2016, 12:10

Название: Перенос кода из Word в Excel
Отправлено: jfd от 24 июня 2016, 12:10
Добрый день, подскажите, пожалуйста,  как перенести код записанный макрорекордером в Excel? Не могу понять на что заменить Selection и я правильно понимаю что вместо параметров надо будет использовать константы?
Код такой:
    Selection.EndKey Unit:=wdStory
    Selection.InsertBreak Type:=wdPageBreak
   
    Selection.TypeParagraph
    With Selection.ParagraphFormat
        .LeftIndent = CentimetersToPoints(9)
        .RightIndent = CentimetersToPoints(1.98)
        .SpaceBeforeAuto = False
        .SpaceAfterAuto = False
    End With

В Excel созданы такие объекты
Set objWordBill = CreateObject("Word.Application")
Set aDoc = objWordBill.ActiveDocument
Название: Re: Перенос кода из Word в Excel
Отправлено: Администратор от 24 июня 2016, 12:32
Вот такие изменения надо внести в код:
Макрос
Sub Макрос()

    Set objWordBill = CreateObject("Word.Application")
    Set aDoc = objWordBill.ActiveDocument
   
    objWordBill.Selection.EndKey Unit:=6
    objWordBill.Selection.InsertBreak Type:=7
   
    objWordBill.Selection.TypeParagraph
    With objWordBill.Selection.ParagraphFormat
        .LeftIndent = objWordBill.CentimetersToPoints(9)
        .RightIndent = objWordBill.CentimetersToPoints(1.98)
        .SpaceBeforeAuto = False
        .SpaceAfterAuto = False
    End With
   
End Sub
[свернуть]

Примечания
Название: Re: Перенос кода из Word в Excel
Отправлено: jfd от 24 июня 2016, 12:35
спасибо большое
Название: Re: Перенос кода из Word в Excel
Отправлено: Администратор от 24 июня 2016, 12:35
У меня при запуске ворда с помощью макроса нет открытого файла, поэтому в моём случае нужен такой код (я изменил вторую строку - это Set aDoc = objWordBill.Documents.Add):

Код:
Sub pro()
   
    Dim objWordBill, aDoc
   
    Set objWordBill = CreateObject("Word.Application")
    Set aDoc = objWordBill.Documents.Add
   
    objWordBill.Selection.EndKey Unit:=6
    objWordBill.Selection.InsertBreak Type:=7
   
    objWordBill.Selection.TypeParagraph
    With objWordBill.Selection.ParagraphFormat
        .LeftIndent = objWordBill.CentimetersToPoints(9)
        .RightIndent = objWordBill.CentimetersToPoints(1.98)
        .SpaceBeforeAuto = False
        .SpaceAfterAuto = False
    End With
   
End Sub
[свернуть]