Статьи из блога

Имя файла на автомате

Недавно на сайте wordtips.vitalnews.com я прочитал об интересном макросе, который позволяет автоматически (без вызова команды Сохранить как (Save as) из меню) сохранять ваш документ с именем, уже включающим в себя текущую дату и словом/буквой, которое вы можете определить по своему усмотрению.

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

 

Итак, загрузите редактор Word и выберите из меню Сервис (Tools) команду Макрос (Macro). Из открывшегося подменю выберите Редактор Visual Basic (Visual Basic Editor) или нажмите сочетание "горячих клавиш" Alt + F11.

 

Перед вами откроется окно редактор Visual Basic с пустым правым окном (это окно именуется окном кода).

 

Вставьте в это окно следующий код:

Public Sub FileSaveAs()
    Dim MyDocTitle As String
    MyDocTitle = Format(Date, "yymmdd") + " letter" '
    Selection.HomeKey Unit:=wdStory
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^pDear "
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    If Selection.Find.Found Then
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        Selection.MoveLeft Unit:=wdCharacter, Count:=2, Extend:=wdExtend
        If Len(Selection.Text) > 1 Then
            MyDocTitle = MyDocTitle + " to " + Selection.Text
        End If
    End If  
    With Dialogs(wdDialogFileSummaryInfo)
        .Title = MyDocTitle
        .Execute
    End With    
    Dialogs(wdDialogFileSaveAs).Show
    End Sub

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

 

Теперь осталось разместить на панели инструментов кнопку этого макроса (подробнее о том, как разместить кнопку макроса на панели инструментов, я писал в пункте 8 заметки Как расположить два открытых документа Word рядом: полезная макрокоманда).

 

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

Этот макрос работает только в том случае, если вы создали и сохраняете таким образом новый документ. Если же вы работаете с ранее созданным документом, имеющим другое наименование (скажем, document.doc), то в этом случае при нажатии кнопки макроса будет использоваться старое имя документа, а не предлагаемое макросом.
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us
Вы можете помочь в развитии сайта, сделав пожертвование:

Или помочь сайту популярной криптовалютой:

 

BTC Адрес: 1Pi3a4c6sJPbfF2sSYR2noy61DMBkncSTQ

 

ETH Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

 

LTC Адрес: LUyT9HtGjtDyLDyEbLJZ8WZWGYUr537qbZ

 

USDT (ERC-20) Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

 

Яндекс Деньги: 410013576807538

 

А тут весь список наших разных крипто адресов, может какой добрый человек пожертвует немного монет или токенов - получит плюсик в карму от нас :) Благо Дарим, за любую помощь!

Еще записи по вопросам использования Microsoft Word:

Комментариев: 3

  1. Petr
    05.10.2009 в 18:19 | #1

    А сделать, чтобы добавлялся еще и текст закладки? Чтобы получилось примерно так: текст закладки_дата_произвольный текст

  2. madriver
    06.06.2017 в 06:56 | #2

    Здравствуйте!

    Как сделать чтобы файл сохранялся автоматически без вызова диалоговых окон?

  3. Аноним
    04.02.2020 в 15:32 | #3

    Не работает.

    Вот рабочий:

    Public Sub FileSave1()

    Dim xDlg As Dialog

    Dim xTitle As String

    On Error Resume Next

    xTitle = ActiveDocument.BuiltInDocumentProperties("Title").Value

    xTitle = xTitle & " " & Format((Year(Now() + 1) Mod 100), "20##") & "-" & _

    Format((Month(Now() + 1) Mod 100), "0#") & "-" & _

    Format((Day(Now()) Mod 100), "0#")

    Set xDlg = Dialogs(wdDialogFileSaveAs)

    xDlg.Name = xTitle

    xDlg.Show

    End Sub

Оставьте комментарий!

(обязательно)

^ Наверх