Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 6 ]
- rerontium
- рядовой
- Неактивен
- Зарегистрирован: 09.08.2010
- Сообщений: 6
Тема: Сохранить несколько окон в один файл не сохраняя окон
Ситуация такая, программа формирует документы. Например, уведомления о какой-либо регистрации. Каждое уведомление WinWord открывает в отдельное окно (бывает их по 500).
Вопрос: Как можно сохранить все эти окна в один файл, например, через разрыв страницы, не сохраняя каждое окно по отдельности
Заранее благодарен всем за ответ!
Отредактировано rerontium (09.08.2010 21:24:59)
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Сохранить несколько окон в один файл не сохраняя окон
Под окном подразумевается документ? Программа создаёт все документы сразу и нужно их сразу сохранить в один файл или по отдельности и нужно новый документ добавлять к файлу с ранее созданными?
Лучше день потерять — потом за пять минут долететь!
- rerontium
- рядовой
- Неактивен
- Зарегистрирован: 09.08.2010
- Сообщений: 6
Re: Сохранить несколько окон в один файл не сохраняя окон
viter.alex пишет:Под окном подразумевается документ? Программа создаёт все документы сразу и нужно их сразу сохранить в один файл или по отдельности и нужно новый документ добавлять к файлу с ранее созданными?
Совершенно верно, окно = документ. Программа создает документы по отдельности и нужно их сразу сохранить в один файл
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Сохранить несколько окон в один файл не сохраняя окон
Можно без сохранения, но тогда придётся использовать буфер обмена. А можно сохранить во временную папку, вставить в результирующий файл, а затем удалить. Как-то вот так.
Sub SaveAllToFile()
Dim oDoc As Document
Dim FSO As Object
Dim sFileName As String
Dim oRng As Range
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oDoc = Documents.Add 'Создаём новый документ
Set oRng = oDoc.Range
Do While Documents.Count > 1
sFileName = FSO.GetTempName() 'Имя для временного файла
'Сохраняем документ во временную папку
Documents(2).SaveAs Environ("Temp") & "\" & Replace(sFileName, "tmp", "doc"), AddToRecentFiles:=False
With oRng
.Collapse wdCollapseEnd
'Вставляем содержимое сохранённого файла
.InsertFile Documents(2).FullName, , , False
.SetRange oDoc.Range.End, oDoc.Range.End
'Вставляем разрыв страницы
.InsertBreak WdBreakType.wdPageBreak
End With
'Закрываем временный файл и удаляем его.
sFileName = Documents(2).FullName
Documents(2).Close False
Kill sFileName
DoEvents
Loop
End Sub
Макрос поместить в Normal. Никаких других документов не должно быть открыто.
Лучше день потерять — потом за пять минут долететь!
- rerontium
- рядовой
- Неактивен
- Зарегистрирован: 09.08.2010
- Сообщений: 6
Re: Сохранить несколько окон в один файл не сохраняя окон
Отлично!!
Славься-славься Viter.Alex The Lord of WordWorld!! (Поёт по английски)
Все работает, но есть маленький нюанс. Документ (в который макрос складывает все документы) создается с параметрами страницы по умолчанию. А программа формирует документы с какими-то своими параметрами. И получается, что некие строки (например "Подпись" или "Место Печати", "Исполнитель") вылазит на другую страницу.
Можно ли подкорректировать макрос с тем условием, чтобы параметры страницы нового документа-контейнера совпадали (или были схожими) с параметрами страницы исходных документов??
Еще раз за-ранее благодарен за ответ!
И еще один (наверное глупый) Тяжело ли создать иконку для этой операции на панели быстрого доступа (word 2003). В принципе горячие клавиши назначил, но просто интересно
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Сохранить несколько окон в один файл не сохраняя окон
Перед циклом Do…While вставьте следующий код:
With oDoc.PageSetup
.LineNumbering.Active = Documents(2).PageSetup.LineNumbering.Active
.Orientation = Documents(2).PageSetup.Orientation
.TopMargin = Documents(2).PageSetup.TopMargin
.BottomMargin = Documents(2).PageSetup.BottomMargin
.LeftMargin = Documents(2).PageSetup.LeftMargin
.RightMargin = Documents(2).PageSetup.RightMargin
.Gutter = Documents(2).PageSetup.Gutter
.HeaderDistance = Documents(2).PageSetup.HeaderDistance
.FooterDistance = Documents(2).PageSetup.FooterDistance
.PageWidth = Documents(2).PageSetup.PageWidth
.PageHeight = Documents(2).PageSetup.PageHeight
.FirstPageTray = Documents(2).PageSetup.FirstPageTray
.OtherPagesTray = Documents(2).PageSetup.OtherPagesTray
.SectionStart = Documents(2).PageSetup.SectionStart
.OddAndEvenPagesHeaderFooter = Documents(2).PageSetup.OddAndEvenPagesHeaderFooter
.DifferentFirstPageHeaderFooter = Documents(2).PageSetup.DifferentFirstPageHeaderFooter
.VerticalAlignment = Documents(2).PageSetup.VerticalAlignment
.SuppressEndnotes = Documents(2).PageSetup.SuppressEndnotes
.MirrorMargins = Documents(2).PageSetup.MirrorMargins
.TwoPagesOnOne = Documents(2).PageSetup.TwoPagesOnOne
.BookFoldPrinting = Documents(2).PageSetup.BookFoldPrinting
.BookFoldRevPrinting = Documents(2).PageSetup.BookFoldRevPrinting
.BookFoldPrintingSheets = Documents(2).PageSetup.BookFoldPrintingSheets
.GutterPos = Documents(2).PageSetup.GutterPos
End With
Лучше день потерять — потом за пять минут долететь!
Сообщений [ 6 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сохранить несколько окон в один файл не сохраняя окон
Вам приходилось, к примеру, редактировать текст, весом с хороший булыжник, где нерадивый наборщик поставил по сорок пробелов между словами? Наш сайт о Microsoft Office Word даст ответ про: сканировать в word.
Пытались ли вы когда-нибудь вручную поменять в Microsoft Word стили? Вы перешли на новую версию программы, все непривычно и непонятно? На портале о Microsoft Office Word вы узнаете про: как изменить сортировку в word русский а затем английский текст.
А может, наоборот, вам пришли в голову оригинальные решения, которыми вы хотите поделить с другими пользователями? Наш сайт о Microsoft Office Word даст ответ про: visual basic word автозамены.
Приглашаем вас посетить форум Ворд Эксперт, где собраны все основные вопросы по этой программе, касательно настроек, работы с документами, в том числе и сложные случаи исправления чужих ошибок и косяков. Наш сайт о Microsoft Office Word даст ответ про: нажал word не сохранять.
Побывав на форуме, вы поймете, что написать макрос – легко и просто, а при желании найдете литературу на этой теме (список прямо на главной). Наш сайт о Microsoft Office Word даст ответ про: как настроить поля текста а world 2010.
Возможно, ответ на свой вопрос или решение проблемы вы отыщете в разделах автоматизации или готовых решений. На портале о Microsoft Office Word вы узнаете про: как уменьшить выделенный текст в ворде.
Если ваша проблема уникальна, можно всегда сделать заявку в соответствующем разделе. Также в этих разделах вы можете выложить свои наработки. Наш сайт о Microsoft Office Word даст ответ про: при открытии документа 2007 открыввает окно ход настройки.
Что приятно, на форуме довольно строгий контроль спама и флуда, на Ворд Эксперт общаются профессионально, но на доступном и понятном языке. На портале о Microsoft Office Word вы узнаете про: как поменять шрифт формулы в ворде.
Для общих тем существует «курилка», для пожеланий по работе предусмотрен свой раздел.