Форум по VBA, Excel и Word

Word => Макросы в Word => Тема начата: Посетитель 29.10.2022 от 01 января 2023, 20:34

Название: Выполнить сценарий
Отправлено: Посетитель 29.10.2022 от 01 января 2023, 20:34
Добрый день!
Файл - шрифт.docx - носит в себе СПЕЦ. шрифт и файл используется для работы.Font.Name = "Fox Book"
Файл - тест1.docx - тестовый файл.
Подскажите как можно автоматизировать открытие файла шрифт.docx, вставка в него текста из Файла - тест1.docx   обработанного это макросом MacroName:="Test3" макрос в файле. Сохранить Файл - шрифт.docx 
Название: Re: Выполнить сценарий
Отправлено: Администратор от 02 января 2023, 14:53
При копировании текста из одного файла в другой может измениться оформление: жирность, курсив, размер, списки и другое.
Название: Re: Выполнить сценарий
Отправлено: Посетитель 29.10.2022 от 02 января 2023, 15:05
Если требуется сохранить исходное форматирование, выполните следующие действия: При вырезании или копировании исходного текста включите в него знак абзаца (¶). Примечание. Чтобы отобразить знак абзаца, нажмите кнопку Отобразить все знаки (¶) в группе Абзац на вкладке Главная. Вставьте текст. Нажмите кнопку Параметры вставки, а затем выберите команду Сохранить исходное форматирование.
Главное как это выполнить  Надо обработать макросом текст скопировать егои с исходным форматированием вставить в Файл - шрифт.docx
Название: Re: Выполнить сценарий
Отправлено: Администратор от 02 января 2023, 15:10
Перед запуском макроса какой-нибудь из этих двух файлов будет открыт?

Цитата:
скопировать егои с исходным форматированием

В Ворде не всё так просто, очень много нюансов, может не получиться скопировать с исходным форматированием. Я об этом написал в ответе 1.
Название: Re: Выполнить сценарий
Отправлено: Посетитель 29.10.2022 от 02 января 2023, 15:14
не получается( надо или указывать папку с файлом или задание на открытие документов
Название: Re: Выполнить сценарий
Отправлено: Администратор от 02 января 2023, 15:19
Не понял, что вы хотели пояснить ответом 4.
Название: Re: Выполнить сценарий
Отправлено: Посетитель 29.10.2022 от 02 января 2023, 15:24
Форматирование привязано  к стилю. Fox Book, при обработке макросом применить стиль Fox Book а при вставке в Файл - шрифт.docx есть тоже стиль  Fox Book
Название: Re: Выполнить сценарий
Отправлено: Администратор от 02 января 2023, 15:26
Перед запуском макроса будут открыты оба файла, о которых вы написали в первом сообщении? Как вы представляли это?
Название: Re: Выполнить сценарий
Отправлено: Посетитель 29.10.2022 от 02 января 2023, 15:37
Ну да перед запуском макроса из файла тест1.docm открыт только файл тест1.docm отработал макрос открываем второй файл шрифт.docx и вставляем в него обработанный текст. или как вариант оба файла открыты первый обработали и вставили во второй
Название: Re: Выполнить сценарий
Отправлено: Администратор от 02 января 2023, 16:23
В этой строке укажите полное имя (путь + имя) файла, в котором шрифт:
Set DocFont = Documents.Open("C:\Users\User\Desktop\шрифт.docx")

Предполагается, что перед запуском макроса активным документом является файл "тест1.docm".
Предполагается, что перед запуском макроса файл "шрифт.docx" закрыт.

Макрос
Sub Test3()
    Dim DocAct As Document, DocFont As Document
    Dim objWord As Word.Range, iCount&: iCount = 1
   
    Const chars = "*[.,;:!?(){}" & vbCr & "]*"
   
    Set DocAct = ActiveDocument
   
    For Each objWord In DocAct.Words
        If Not objWord.Text Like chars Then
           If iCount Mod 3 = 0 Then objWord.Font.Name = "Fox Book"
           iCount = iCount + 1
        End If
    Next
   
    Set DocFont = Documents.Open("C:\Users\User\Desktop\шрифт.docx")
    DocAct.Range.Copy
    DocFont.Range.PasteAndFormat wdFormatOriginalFormatting
    DocFont.Save
End Sub
[свернуть]
Название: Re: Выполнить сценарий
Отправлено: Посетитель 29.10.2022 от 02 января 2023, 19:29
Администратор, спасибо большое, то что надо. Респект и уважение.
С Новым Вас Годом!!!