Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Heleno4ka от 24 апреля 2018, 11:52

Название: Word VBA Макросы: Как подставить в имя файла данные из первой строки?
Отправлено: Heleno4ka от 24 апреля 2018, 11:52
У меня есть макрос, который сохраняет файл. Как подставить в имя файла данные из первой строки?
Название: Re: Word VBA Макросы: Как подставить в имя файла данные из первой строки?
Отправлено: Администратор от 24 апреля 2018, 12:50
В ворде есть такое понятие "абзац". Слышали об этом?
В конце абзаца есть невидимый символ "знак абзаца", который видно, когда включён режим непечатаемых символов?
Название: Re: Word VBA Макросы: Как подставить в имя файла данные из первой строки?
Отправлено: Heleno4ka от 24 апреля 2018, 12:53
Да, я знаю, что такое абзац в ворд-файле.
Название: Re: Word VBA Макросы: Как подставить в имя файла данные из первой строки?
Отправлено: Администратор от 24 апреля 2018, 12:55
Может быть удобнее будет извлекать данные не из первой строки, а из первого абзаца?
В ворде со строками из макроса сложнее работать, чем с абзацами, т.к. в VBA нет объекта "строка файла", но есть объект "абзац".
Название: Re: Word VBA Макросы: Как подставить в имя файла данные из первой строки?
Отправлено: Heleno4ka от 24 апреля 2018, 13:02
Первый абзац в моём файле - это одна строка. Тогда гораздо проще использовать абзац.
Название: Re: Word VBA Макросы: Как подставить в имя файла данные из первой строки?
Отправлено: Администратор от 24 апреля 2018, 13:06
Тогда вам нужно извлечь данные из первого абзаца файла, например, в переменную, а затем переменную вы сможете подставить туда, куда надо.

Sub макрос()

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

End Sub
Название: Re: Word VBA Макросы: Как подставить в имя файла данные из первой строки?
Отправлено: Heleno4ka от 24 апреля 2018, 13:09
И добавить в SaveAs2 FileName...Paragraphs(1).Range.Text?
Название: Re: Word VBA Макросы: Как подставить в имя файла данные из первой строки?
Отправлено: Администратор от 24 апреля 2018, 13:11
На конце абзаца есть символ "знак абзаца", он может помешать, а может нет, надо тестировать.
Поэтому может быть сначала потребуется записать текст абзаца в переменную, чтобы удалить знак абзаца, а затем уже подставляйте переменную в нужное место.
Название: Re: Word VBA Макросы: Как подставить в имя файла данные из первой строки?
Отправлено: Heleno4ka от 24 апреля 2018, 14:07
Ура-ура-ура, работает!!!
Спасибо, добрый волшебник! Пусть у Вас всё будет замечательно!

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