1

Тема: Как сделать шаблон чтобы ему присваивалось определенное имя

Всем доброго времени суток! как сделать чтобы в имени файла был не документ1 а мое заданное?? например Транспортная накладная1...

2

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

Стандартно, новые документы Word создаются с именем Документ и не имеют постоянного места хранения, это временный файл и постоянным он становится либо при первом построении, либо при закрытии с запросом на сохранение. Единственное, можно написать макрос, который при открытии нового документа будет выдавать запрос на сохранение сразу, до начала работы с документом и если файл не сохранен, закрывать его.

3

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

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

4

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

Если документ создаётся на основе шаблона, то можно написать макрос, перехватывающий первое сохранение файла и поставляющий своё имя вместо заданного по умолчанию. Это нужно?

Лучше день потерять — потом за пять минут долететь!

5

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

Так в том то и смысл, что товарищ xray26 хочет чтобы при создании нового документа хочет уже автоматически нумерованное имя создавать.

6

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

Можно глобально пропатчить слово "Документ" на "Транспортная накладная" smile Не знаю правда, где Word его хранит. Самому интересно, поищу...

Макросы под заказ и готовый пакет - mtdmacro.ru

7

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

А смысл патчить, сейчас нужна Транспортная накладная, завтра документ с другим названием. Все лень человеческая. Можно просто написать макрос автоматического номера названия документа. Уж совсем лениться не надо.

8

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

Если в шаблоне в свойстве "Название" (Title) вписать "Транспортная накладная", то при создании нового документа и нажатии кнопки "Сохранить", этот текст появится в поле "Имя файла".

Макросы под заказ и готовый пакет - mtdmacro.ru

9

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

Так это понятно. Только для разных типов документов придется устанавливать разные значения свойства (Title) и если в каком-то шаблоне сохраняются макросы, то отслеживать их копирование. Либо забивать Normal. Но все равно, придется создавать шаблон под каждое название. Либо писать макрос при котором будет сначала выводиться окно с выбором типа документа, а потом уже, на основе запроса открывать документ на основе выбранного шаблона.

10

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

всем спасиб за ответы уважаемые эксперты! я шаблон создал уже..вот в экселе шаблон когда создаю там при создании нового файла он правильно это делает...а вот в ворде документ1 ... в этом вопрос застрял...

11

Re: Как сделать шаблон чтобы ему присваивалось определенное имя

Не вижу способа решить без макроса. Предлагаю такой вариант. Код поместить в модуль ThisDocument шаблона документа. Константу DOCNAME заменить требуемым значением. При сохранении файла подменяется имя в диалоге.
В данном варианте номер документа меняется всегда, но можно доработать, чтобы менялся только, если документ был сохранён.
Настройки хранятся в реестре HKEY_CURRENT_USER\Software\VB and VBA Program Settings

Option Explicit

Private Const APPNAME = "Накладные"
Private Const SECTIONNAME = "Порядковые номера"
Private Const DOCNAME = "Транспортная накладная" 'Постоянная часть имени файла
Private Const DOCNUM = "Номер документа" 'Порядковый номер

Dim DefaultDocName As String 'Полное имя документа

'Макрос при создании нового документа на основе данного шаблона
Sub AutoNew()
    Dim nDocNum As Integer
    
    nDocNum = Val(GetSetting(APPNAME, SECTIONNAME, Key:=DOCNUM))
    DefaultDocName = DOCNAME & (DOCNUM + 1)
    SaveSetting APPNAME, SECTIONNAME, Key:=DOCNUM, Setting:=nDocNum + 1
End Sub

'Переопределение процедуры "Сохранить"
Sub FileSave()
    If ActiveDocument.FullName = ActiveDocument.Name Then
        With Dialogs(wdDialogFileSaveAs)
            .Name = DefaultDocName
            .Show
        End With
    Else
        ActiveDocument.Save
    End If
End Sub

'Переопределение процедуры "Сохранить как..."
Sub FileSaveAs()
    With Dialogs(wdDialogFileSaveAs)
        .Name = DefaultDocName
        .Show
    End With
End Sub
Лучше день потерять — потом за пять минут долететь!