Перенос кода из Word в Excel

Автор jfd, 24 июня 2016, 12:10

jfd

Добрый день, подскажите, пожалуйста,  как перенести код записанный макрорекордером в 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

Администратор

Вот такие изменения надо внести в код:
Макрос
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
[свернуть]

Примечания

  • Посмотреть значение константы можно так: в VBA - View - Object Browser - слева от бинокля вставьте название константы, например, wdStory - справа щёлкните бинокль - в самом внизу посмотрите число, которое находится в константе.
  • При поиске в "Object Browser" смотрите, чтобы в искомом тексте на конце не было пробелов, иначе не будет найдено.

jfd


Администратор

У меня при запуске ворда с помощью макроса нет открытого файла, поэтому в моём случае нужен такой код (я изменил вторую строку - это 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
[свернуть]