Word VBA Макросы: Скопировать слова в новый документ

Автор dancher, 20 октября 2017, 15:27

dancher

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

Макрос
Sub макрос()

    Dim words, word_
   
    ' Разбивка текста во всём файле на слова по пробелам и запись
        ' слов в переменную-массив "words".
    words = Split(ActiveDocument.Range.Text, " ")
   
    ' Цикл по словам в массиве "words".
    For Each word_ In words
        ' Здесь нужно скопировать слово в новый файл.
    Next
   
End Sub
[свернуть]

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

В пункте 3 укажите полное имя (путь + имя) нового файла.

Макрос
Sub макрос()

    Dim doc_act As Document, doc_new As Document
    Dim words, word_
   
   
    '1. Отключение монитора (может это ускорит макрос и чтобы не мерцало).
    Application.ScreenUpdating = False
   
    '2. Присваиваем активному ворд-файлу имя "doc_act".
        ' Далее в коде можно обращаться к активному файлу по этому имени,
        ' даже если активным файлом станет другой файл.
    Set doc_act = ActiveDocument
   
    '3. Создание пустого файла и сохранение его на рабочем столе.
        ' Здесь укажите свой путь. Новому файлу присваиваем имя "doc_new".
        ' Далее в коде можно обращаться к новому файлу по имени "doc_new".
    Set doc_new = Documents.Add
    doc_new.SaveAs2 Filename:="C:\Users\User\Desktop\новый файл.docx", FileFormat:=wdFormatXMLDocument
   
    '4. Разбивка текста во всём файле на слова по пробелам и запись
        ' слов в переменную-массив "words".
    words = Split(doc_act.Range.Text, " ")
   
    ' Цикл по словам в массиве "words".
    For Each word_ In words
        '5. Копирование слова в другой файл.
        doc_new.Range.InsertAfter Text:=word_
    Next
   
    '6. Закрытие нового файла с сохранением.
    doc_new.Close SaveChanges:=True
   
    '7. Включение монитора.
    Application.ScreenUpdating = True
   
End Sub
[свернуть]