0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 5
1

Макрос Word: вставить в конец документа строчку с информацией о документе

02.07.2014, 14:07. Показов 21190. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужен макрос, вставляющий в конец документа строчку с информацией о документе (путь, имя, дата открытия). Используемые объекты, коллекции, свойства, методы, функции: Paragraphs, Add, Range, Path, Name.
Продолжение: вычисление и сохранение в переменных документа контрольной суммы, формирующейся по тексту документа. По запросу пользователя – запрос о сравнении контрольной суммы с сохраненной.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.07.2014, 14:07
Ответы с готовыми решениями:

Макрос: вставить строки из одного документа в определенное место в другом документе
В одном вордовском документе несколько абзацев, в каждом абзаце несколько слов. В другом...

Первую строчку в документе сделать названием самого документа
Как сделать ,при сохранении , первую строчку в документе названием самого документа т.е при...

Word: макрос, подсчитывающий количество слов в документе
Помогите создать макрос, посчитывающий количество слов в документе!

Макрос поиска и замены дат в документе Word
Всем привет. Есть текстовый документ который периодически заполняется, в начале документа есть дата...

6
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
02.07.2014, 14:38 2
Задача ясна. Но тут не отдел заказов. Развивайте тему.
1
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 5
02.07.2014, 15:11  [ТС] 3
Вставить текст через
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub InsertAfterMethod()
  Dim MyText As String
  Dim MyRange As Object
  Set MyRange = ActiveDocument.Range
  MyText = "<Replace this with your text>"
  ' Selection Example:
  Selection.InsertAfter (MyText)
  ' Range Example:
  ' (Inserts text at the current position of the insertion point.)
  MyRange.Collapse
  MyRange.InsertAfter (MyText)
End Sub
Дату через
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub InsertDateTimeMethod()
   Dim MyRange As Object
   Set MyRange = Selection.Range
   ' Selection Example:
   Selection.InsertDateTime DateTimeFormat:="MMMM dd, yyyy", _
   InsertAsField:=True
   ' Range Example:
   MyRange.InsertDateTime DateTimeFormat:="MMM dd, yyyy", _
   InsertAsField:=True
End Sub
Можно так?
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
02.07.2014, 20:49 4
Можно, и не только дату:
Миниатюры
Макрос Word: вставить в конец документа строчку с информацией о документе  
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
03.07.2014, 02:43 5
Первую половину (а может, даже и вторую) можно сделать вставкой соответствующих полей:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub InsertWhatYouNeed()
    With Selection
       .EndKey wdStory          'переход в конец документа
       .TypeParagraph           'ввод нового абзаца
       .Fields.Add .Range, Type:=wdFieldFileName    'имя
       .TypeParagraph           'ввод нового абзаца
       .Fields.Add .Range, Type:=wdFieldDate        'дата
       .TypeParagraph           'ввод нового абзаца
       .Fields.Add .Range, Type:=wdFieldTime        'время
    End With
ActiveDocument.Fields.Update    'обновление полей
'Здесь мы ввели поля Word с данными об имени и текущей дате.
End Sub
А для помещения всей этой лабуды внизу страницы Вождь предложил метод Repaginate: Добавление подписи в конце страницы.
Миниатюры
Макрос Word: вставить в конец документа строчку с информацией о документе  
1
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 5
03.07.2014, 18:49  [ТС] 6
Всем спасибо, вроде получилось! Только вот этот пункт не удается реализовать:по запросу пользователя – запрос о сравнении контрольной суммы с сохраненной.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub InsertWhatYouNeed()
    With Selection
       .EndKey wdStory
       .TypeParagraph
       .Fields.Add .Range, Type:=wdFieldFileName
       .TypeParagraph
       .Fields.Add .Range, Type:=wdFieldDate
       .TypeParagraph
       .Fields.Add .Range, Type:=wdFieldTime
        .TypeParagraph
       Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        "FILESIZE  \k ", PreserveFormatting:=True
    End With
ActiveDocument.Fields.Update
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
04.07.2014, 02:08 7
П́оля для контрольной суммы* не знаю; а то, что мы уже получили, можно сделать короче:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub FieldInsertion()
    Selection.EndKey wdStory          'переход в конец документа
    
    With Selection
       .TypeText vbCr & "Путь к файлу и его имя: "
       
       .Fields.Add .Range, Text:="FileName \p"          'путь к файлу и имя
       
       .TypeText vbCr & "Время и дата создания: "
       
       .Fields.Add .Range, Text:="createdate \@ H:nn "  'время создания
       .Fields.Add .Range, Text:="createdate \@ "", dddd D MMMM yyyy""" 'дата создания
    End With
End Sub
Попробуйте на закуску диалоговые окна Сведения (другой перевод: Свойства) и Статистика:
Visual Basic
1
2
3
4
5
Sub Макрос1()
    Dialogs(wdDialogFileSummaryInfo).Display
'    Stop
    Dialogs(wdDialogDocumentStatistics).Show
End Sub
_______________
* поищите эту сумму в свойствах документа (Word 2003) — на форуме было, но пока не нашёл
1
04.07.2014, 02:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2014, 02:08
Помогаю со студенческими работами здесь

Макрос по замене текста во всем документе Word
На просторах интернета нашел вот такой макрос Sub FindInStories() Dim myStoryRange As Range ...

Подправить макрос обработки параграфов в документе (MS Word)
Добрый вечер. Данный макрос должен обрабатывать выделенные параграфы в документе за исключением:...

Сделать макрос в Word, вводишь строку и макрос произвольно меняет шрифт, цвет и размер для каждого слова из этого активного вордовского документа.
Началось VBA - лекций нет, только практика. Препод категоричеки отказывается что-нить объяснять,...

Написать макрос для изменения цвета в документе Word
Здравствуйте! Нужен макрос для изменения цвета выделения(т.е цвета фона) всех согласных букв в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru