Как создать объект абзаца формата Word из макроса Excel - PullRequest
0 голосов
/ 26 мая 2019

Я создаю новый документ Word из макроса Excel, и он отлично работает. Теперь я хочу создать новый объект ParagraphFormat для применения ко многим абзацам. Microsoft Office Dev Center приводит пример макроса в слове.

Set oWord_app = CreateObject("Word.Application")
oWord_app.Documents.Add
Set oDoc = oWord_app.Documents(1)

'Micorsoft Def Center:
Dim myParaF As New ParagraphFormat 
myParaF.Alignment = wdAlignParagraphCenter 
myParaF.Borders.Enable = True 
ActiveDocument.Paragraphs(1).Format = myParaF

Чтобы адаптировать этот макрос Word к моему макросу Excel, я думаю, что мне нужно написать

Dim myParaF as new oWord_app.ParagraphFormat

но это не удалось. Какой правильный путь?

1 Ответ

0 голосов
/ 27 мая 2019

Спасибо за ваш совет. Извините, но я действительно не думал проверять ссылки. У меня была только ссылка на библиотеку объектов Microsoft Office 14.0, теперь я также ссылаюсь на библиотеку объектов Microsoft Word 14.0. И теперь это работает. Новое утверждение, очевидно, необходимо, в противном случае я получаю ошибку «переменная не известна». Я до сих пор удивляюсь, почему он работает только без «Word_app. ParagraphFormat », но уже с« ParagraphFormat ». Большое спасибо.

вот мой код в коротких словах:

    Option Explicit
    Dim Word_app As Object, oDoc As Object, bWordVorhanden As Boolean, pFormat As Object

Sub DocumentCreate()

    Set Word_app = CreateObject("Word.Application")
    Word_app.Visible = True
    Word_app.Documents.Add
    Set oDoc = Word_app.Documents(1)

Set pFormat = New ParagraphFormat 
pFormat.Alignment = wdAlignParagraphCenter
pFormat.Borders.Enable = True
ActiveDocument.Paragraphs(1).Format = pFormat

    With oDoc.Paragraphs(1).Range
        .Font.Name = "Arial"
        .Font.Size = 11
        .Font.Bold = True
        .ParagraphFormat.Alignment = 1 'wdAlignParagraphCenter
        .InsertAfter "hello" 'Text:=Str(oDoc.Paragraphs.Count)
        .ParagraphFormat.SpaceBefore = 12
        .ParagraphFormat.SpaceAfter = 6
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...