Статьи из блога
Имя файла на автомате
Недавно на сайте 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 рядом: полезная макрокоманда).
После создания вами нового документа, нажмите эту кнопку и выберите папку для сохранения файла или воспользуйтесь предлагаемой папкой Мои документы по умолчанию. А имя файла уже будет задано автоматически.
Метки: FileSaveAs | автоматизация | макросы | поиск и замена
Просмотров: 17928
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 3 способа очистки списка недавно открытых документов
- Абзац с цветным фоном
- Автоматическая запись макроса
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Быстрая смена ориентации страниц документа
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрый ввод текста с помощью команды =rand()
- Ввод часто повторяющихся фрагментов текста
- Вставка будущей даты
- Вставка документа с книжной ориентацией в документ с альбомной ориентацией
- Вставка завтрашней даты
- Вставка изображений из указанной папки для Word 2007
- Вставка неформатированного текста
- Вставка скопированного текста в предопределенном формате
- Вставка текста с полями в нижний колонтитул
- Вставка текста с помощью кнопки
- Выделение видимой части экрана
- Двойная нумерация страниц в документе
- Задать обтекание текстом для всех рисунков в документе
- Замена жаргонных слов в тексте
- Замена знаков абзаца на пробелы в выделенном тексте
- Замена текста в скобках на пробел
Комментариев: 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