Тема: Макрос для разделения файла на нескольо по страницам
Имеется файл из n страниц, в каждой странице фотография, никаких переносов на следующую страницу нет, подскажите пожалуйста макрос для разделения этого файла n файлов.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Имеется файл из n страниц, в каждой странице фотография, никаких переносов на следующую страницу нет, подскажите пожалуйста макрос для разделения этого файла n файлов.
Писал я когда-то такой макрос:
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Declare Function timeBeginPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Private Declare Function timeEndPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'Сохранение каждой страницы в отдельный документ
Sub SaveEachPageToFileM()
Dim oRng As Range, oMainDoc As Document, oNewDoc As Document, sFileName$, iPage As Long, cntp As Long
Dim tm As Long, tmu As Long
timeBeginPeriod 1
Sleep 20
tm = timeGetTime()
Application.ScreenUpdating = False 'Отключаем обновление экрана
Set oMainDoc = ActiveDocument
Set oRng = oMainDoc.Range 'Диапазон основного документа
cntp = oMainDoc.ComputeStatistics(2) ' Количество страниц в документе
Set oNewDoc = Documents.Add
Do
iPage = iPage + 1
'Изменяем рабочий диапазон до одной страницы
If iPage > 1 Then Set oRng = oRng.GoToNext(1) 'wdGoToPage
If iPage < cntp Then
oRng.SetRange oRng.Start, oRng.GoToNext(1).Start 'wdGoToPage
Else
oRng.SetRange oRng.Start, oMainDoc.Range.End
End If
'Копируем страницы
oNewDoc.Content.Delete
oRng.Copy
oNewDoc.Content.Paste
'Имя файла
sFileName = "Страница " & iPage & " документа (" & Mid(oMainDoc.Name, 1, InStrRev(oMainDoc.Name, ".") - 1) & ")"
'Сохраняем новый документ в папку с исходным
oNewDoc.SaveAs oMainDoc.Path & Application.PathSeparator & sFileName & Mid(oMainDoc.Name, InStrRev(oMainDoc.Name, ".")), AddToRecentFiles:=False, FileFormat:=oMainDoc.SaveFormat
Loop While iPage < cntp
Set oRng = Nothing
oNewDoc.Close wdDoNotSaveChanges
Set oNewDoc = Nothing
tm = timeGetTime() - tm
timeEndPeriod 1
'Включаем обновление экрана
Application.ScreenUpdating = True
MsgBox "Сохранено в файлы " & iPage & " страниц. Прошло " & CStr(tm / 1000) & " сек." & vbCr & _
"Папка сохранения: " & oMainDoc.Path & Application.PathSeparator, vbOKOnly + vbInformation, "Документы сохранены"
Set oMainDoc = Nothing
End Sub
С помощью ребят из другого форума добавил в него замер времени выполнения и сохранение страниц в том же формате, что и исходный файл
Спасибо.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Макрос для разделения файла на нескольо по страницам
При работе с многофункциональными современными редакторами текста, такими как, например, Microsoft Word, очень часто возникает потребность обсудить проблемы и нюансы работы. Наш сайт о Microsoft Office Word даст ответ про: правила антонимы и синонимы. В зависимости от типа текста, цели, с которой он создается или редактируется, пользователю приходится осваивать те или иные функции, искать пути автоматизации своей работы, особенно это актуально для значительных объемов текста. На портале о Microsoft Office Word вы узнаете про: перекрестная ссылка на абзай в ворде 07. Также бывают трудности при переходе от одной версии Ворда к другой.
Помочь пользователям текстового редактора решили на сайте Ворд Эксперт и форуме сайта. Наш сайт о Microsoft Office Word даст ответ про: как проверить количество знаков в word. Тут собрана вся необходимая информация, касающаяся программы, доступны полезные ссылки и списки литературы, выложены готовые ответы на самые стандартные вопросы, кроме того, оригинальные решения различных проблем при работе с программой. Наш сайт о Microsoft Office Word даст ответ про: порядок выполнения расчетов в таблице word. Например, на форуме вы найдете макросы для нумерации разделов, шаблоны оглавлений, принципы работы с горячими клавишами и многое другое. Наш сайт о Microsoft Office Word даст ответ про: понятие интервал в программе word.
Прежде всего, Ворд Эксперт, ориентирован на автоматизацию работы Ворда, тут обсуждаются разнообразные макросы и шаблоны, но также вы найдете сравнительные характеристики различных версий, обсуждение настроек программы и способов редактирования и форматирования тексов. На портале о Microsoft Office Word вы узнаете про: как сделать в верде2003 рамку.
Кроме того, вы можете описать свою проблему в специальном подразделе и получить готовое решение.