Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.12.2008, 03:33   #1
dododo
 
Регистрация: 04.11.2008
Сообщений: 8
По умолчанию Подскажите как автоматизировать работу в Word?

меется документ в word (Протокол дипломного проекта) нужно заполнить его для каждого студента - соответственно в протоколе будут меняться только фамилии названия и даты - как автоматизировать это процесс заполнение чтобы создавались протоколы с измененной информацией

Подскажите все варианты - и ссылки на программы или как это сделать. Можо ли создать таблицу exel или acses и сделать слияние с word-ом
PS - это жет пригодиться всем, не только мне!
Вложения
Тип файла: doc Скоблина.doc (72.5 Кб, 33 просмотров)
dododo вне форума
Старый 17.12.2008, 05:13   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А использование Word обязательно?
Может создать шаблон в Excel и его использовать?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 17.12.2008, 05:37   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Автоматизировать процесс заполнения протоколов можно и при помощи макросов - например, как в этой теме.

Но штатными средствами Word-а это делается проще и быстрее
(к сожалению, сейчас уже не вспомню, как это делается - давно это было, но делал я всё это, пользуясь только встроенной справкой Word-а)
EducatedFool вне форума
Старый 17.12.2008, 11:16   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

В вопросе уже правильная идея написана: СЛИЯНИЕ. Это предназначение данного средства - написать одно и тоже письмо для разных получателей. Я так делал пропуска и поздравления с праздниками. Шаблон в ворде, база в экселе. Если в базе ввести колонку, где указывать пол, то еще и правильные обращения можно организовать, а еще колонку печатать/непечатать, то несколькими нажатиями кнопок все необходимое попадает и на печать сразу. Очень удобно. Ничего выдумывать не надо было.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 18.12.2008, 02:20   #5
dododo
 
Регистрация: 04.11.2008
Сообщений: 8
По умолчанию

а можете пожалуйста с этим документом (Скоблина) для примера показать с выдуманной фамилией и темой диплома

Последний раз редактировалось dododo; 18.12.2008 в 03:44.
dododo вне форума
Старый 18.12.2008, 02:23   #6
dododo
 
Регистрация: 04.11.2008
Сообщений: 8
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
А использование Word обязательно?
Может создать шаблон в Excel и его использовать?



можно и Exel - покажите пожалуйста пример как это реализовать с одной фамилией
dododo вне форума
Старый 18.12.2008, 03:56   #7
dododo
 
Регистрация: 04.11.2008
Сообщений: 8
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Автоматизировать процесс заполнения протоколов можно и при помощи макросов - например, как в этой теме.

Но штатными средствами Word-а это делается проще и быстрее
(к сожалению, сейчас уже не вспомню, как это делается - давно это было, но делал я всё это, пользуясь только встроенной справкой Word-а)
Спасибо за ответ - подскажите пожалуйста что нужно менять в ВАШЕМ скрипте .....Например у меня будут новые переменные (фамилия, тема диплома, и так далее (я этим названия придумаю краткие названия переменых как и у вас) fam , diplom , data) и что нужно делать в самом шаблоне протокола в месте вставки данных - как связать скрипт с {фио} и тд и что значит эти скобки (как создать эти места для связки со скриптом экселя я уже не русским языком пишу надеюсь поймете )

Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 18.10.2008 (XTreme)
'
Dim sFIO As String, objWord As Word.Application, sDolg As String, A As Integer
Dim objDoc As Word.Document, sFile As String, sOtd As String, iOklad As Integer
'
'For a = 1 To 3
Range("C2").Select
sOtd = ActiveCell.Value
Range("A2").Select
sFIO = ActiveCell.Value
Range("B2").Select
sDolg = ActiveCell.Value
Range("D2").Select
iOklad = ActiveCell.Value
'Next A

sFile = "C:\Documents and Settings\Администратор\Рабочий стол\Тарифы\Test1.dot"
Set objWord = New Word.Application
Set objDoc = objWord.Documents.Open(sFile)
With objWord
.Visible = True
.Selection.InsertAfter Format(Now, "Long date")
End With
objDoc.Bookmarks("FIO").Select
objWord.Selection.InsertAfter sFIO
objDoc.Bookmarks("Dolg").Select
objWord.Selection.InsertAfter sDolg
objDoc.Bookmarks("Otd").Select
objWord.Selection.InsertAfter sOtd
objDoc.Bookmarks("Oklad").Select
objWord.Selection.InsertAfter iOklad
objWord.ActiveDocument.SaveAs "C:\Documents and Settings\Администратор\Рабочий стол\Тарифы\TestDoc", doc

Set objDoc = Nothing
Set objWord = Nothing
End Sub
dododo вне форума
Старый 18.12.2008, 07:49   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

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

Там на листе Excel есть желтая кнопка СОЗДАТЬ ПИСЬМА, которая запускает другой макрос - CreateDocs:

Код:
Sub CreateDocs()
    Dim WA As New Word.Application
    Dim WD As Word.Document, ra As Word.Range
    Set WD = WA.Documents.Add(ThisWorkbook.Path & Application.PathSeparator & "шаблон.dot")
    With WA.Selection
        .HomeKey Unit:=wdStory: .EndKey Unit:=wdStory, Extend:=wdExtend
        .Copy
        For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
            .Paste
            .EndKey Unit:=wdStory: .HomeKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{дата}", False, , , , , , , , Format(Now, "dd mmmm yyyy г."), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{фио}", False, , , , , , , , Cells(i, 1), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{должность}", False, , , , , , , , Cells(i, 2), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{отделение}", False, , , , , , , , Cells(i, 3), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
            .Find.Execute "{оклад}", False, , , , , , , , Cells(i, 4), True
            .EndKey Unit:=wdStory
        Next i
    End With
    WD.SaveAs ThisWorkbook.Path & Application.PathSeparator & "письма.doc"
    WD.Close False: WA.Quit False
End Sub
В этом макросе строки типа .Find.Execute "{фио}", False, , , , , , , , Cells(i, 1), True
отвечают за замену текста.
В данной строке заменяется текст "{фио}" на значение ячейки Cells(i, 1), где i - номер строки (макрос перебирает все заполненные ячейки в первом столбце)

Но, опять же, повторюсь: гораздо быстрее и проще сделать это штатными средствами Word-a (слиянием)
EducatedFool вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как автоматизировать работу в Word? dododo Microsoft Office Word 7 19.03.2009 23:58
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17
Ребята не подскажите где можно найти удаленную работу? slips Фриланс 1 10.11.2008 17:06
Автоматизировать ввод Radmir Microsoft Office Excel 1 23.02.2008 13:13
Как найти работу? Lika Свободное общение 7 15.12.2007 16:20