Word VBA Макросы: Как подставить в имя файла данные из первой строки?

Автор Heleno4ka, 24 апреля 2018, 11:52

Heleno4ka

У меня есть макрос, который сохраняет файл. Как подставить в имя файла данные из первой строки?

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

В ворде есть такое понятие "абзац". Слышали об этом?
В конце абзаца есть невидимый символ "знак абзаца", который видно, когда включён режим непечатаемых символов?

Heleno4ka


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

Может быть удобнее будет извлекать данные не из первой строки, а из первого абзаца?
В ворде со строками из макроса сложнее работать, чем с абзацами, т.к. в VBA нет объекта "строка файла", но есть объект "абзац".

Heleno4ka

Первый абзац в моём файле - это одна строка. Тогда гораздо проще использовать абзац.

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

Тогда вам нужно извлечь данные из первого абзаца файла, например, в переменную, а затем переменную вы сможете подставить туда, куда надо.

Sub макрос()

    Dim var
   
    ' Копирование первого абзаца из активного файла в переменную "var".
    var = ActiveDocument.Paragraphs(1).Range.Text
   
    ' Удаление из переменной знака абзаца.
    var = Left(var, Len(var) - 1)

End Sub

Heleno4ka


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

На конце абзаца есть символ "знак абзаца", он может помешать, а может нет, надо тестировать.
Поэтому может быть сначала потребуется записать текст абзаца в переменную, чтобы удалить знак абзаца, а затем уже подставляйте переменную в нужное место.

Heleno4ka

Ура-ура-ура, работает!!!
Спасибо, добрый волшебник! Пусть у Вас всё будет замечательно!

newdoc.SaveAs "C:\" & "Информация для_" & var & ".docx"