Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Проблема с альбомной страницей Добавлено: 08.08.08 17:24  

Автор вопроса:  m00
Всем привет. Столкнулся с проблемой:
Из различных шаблонов программно создан вордовский документ. Некоторые шаблоны имеют вид альбомной страницы, но в документе всё отображается на обычных страницах.
Получалось менять параметры страницы, но при этом они становились все альбомные

Как сделать альбомной конкретную страницу в вордовском документе?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #1
Добавлено: 08.08.08 18:31
    Кусок текста поместить в отдельный раздел. Параметры страницы относятся именно к разделу.

Ответить

Номер ответа: 2
Автор ответа:
 m00



Вопросов: 1
Ответов: 1
 Профиль | | #2 Добавлено: 09.08.08 07:19
так то оно так ... да только не выходит

maindoc.ActiveWindow.Selection.InsertFile(spath)
maindoc.ActiveWindow.Selection.MoveLeft(1,1,1)
maindoc.ActiveWindow.Selection.PageSetup.PageWidth = 29.7 *28.35
maindoc.ActiveWindow.Selection.PageSetup.PageHeight = 21 *28.35


вот как делал:
- вставляю файла в главный документ
- выделяю текст
- питыюсь к выделенному тексту применить параметры альбомной страницы ...в итоге все листы альбомные

в vba не оч силен, я так понимаю ActiveWindow - это активный лист документа, который шас перед глазами? ... если да, то как выделить сразу всю страницу?
И правильно ли я думаю, делая так? ... запутался уже

Ответить

Номер ответа: 3
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #3
Добавлено: 09.08.08 10:36
    Не знаю как на VBA, но ручками это так: ставится курсор перед нужным текстом, вставляется "раздел с новой страницы", ставится курсор после нужного текста, вставляется "раздел с новой страницы", ставится курсор внутрь текста и устанавливаются параметры страницы.
    Вставка начала раздела с новой страницы:
  Selection.InsertBreak Type:=wdSectionBreakNextPage

Ответить

Номер ответа: 4
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #4 Добавлено: 10.08.08 11:26
Примерно вот так:
    Selection.InsertBreak Type:=wdPageBreak 'вставляем разрыв страницы
    ActiveDocument.Range(Start:=Selection.Start, End:=Selection.Start).InsertBreak Type:=wdSectionBreakNextPage 'новый раздел со следующей страницы и до конца документа
    Selection.Start = Selection.Start + 1
    With ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument.Content.End).PageSetup  'устанавливаем нужные параметры страницы (например, альбомное расположение)
        .LineNumbering.Active = False
        [b].Orientation = wdOrientLandscape[/b]
        .TopMargin = CentimetersToPoints(1.5)
        .BottomMargin = CentimetersToPoints(3)
        .LeftMargin = CentimetersToPoints(2)
        .RightMargin = CentimetersToPoints(2)
        .Gutter = CentimetersToPoints(0)
        .HeaderDistance = CentimetersToPoints(1.25)
        .FooterDistance = CentimetersToPoints(1.25)
        .PageWidth = CentimetersToPoints(29.7)
        .PageHeight = CentimetersToPoints(21)
        .FirstPageTray = wdPrinterDefaultBin
        .OtherPagesTray = wdPrinterDefaultBin
        .SectionStart = wdSectionNewPage
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .VerticalAlignment = wdAlignVerticalTop
        .SuppressEndnotes = False
        .MirrorMargins = False
        .TwoPagesOnOne = False
        .BookFoldPrinting = False
        .BookFoldRevPrinting = False
        .BookFoldPrintingSheets = 1
        .GutterPos = wdGutterPosLeft
    End With
    
    Selection.MoveDown Unit:=wdLine, Count:=3
    
    Selection.InsertBreak Type:=wdPageBreak  'в нужном месте снова вставляем разрыв
    ActiveDocument.Range(Start:=Selection.Start, End:=Selection.Start).InsertBreak Type:=wdSectionBreakNextPage  'новый раздел со следующей страницы и до конца документа
    Selection.Start = Selection.Start + 1
    With ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument.Content.End).PageSetup    'устанавливаем нужные параметры страницы (например, портретное/книжное расположение)
        .LineNumbering.Active = False
        [b].Orientation = wdOrientPortrait[/b]
        .TopMargin = CentimetersToPoints(2)
        .BottomMargin = CentimetersToPoints(2)
        .LeftMargin = CentimetersToPoints(3)
        .RightMargin = CentimetersToPoints(1.5)
        .Gutter = CentimetersToPoints(0)
        .HeaderDistance = CentimetersToPoints(1.25)
        .FooterDistance = CentimetersToPoints(1.25)
        .PageWidth = CentimetersToPoints(21)
        .PageHeight = CentimetersToPoints(29.7)
        .FirstPageTray = wdPrinterDefaultBin
        .OtherPagesTray = wdPrinterDefaultBin
        .SectionStart = wdSectionNewPage
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .VerticalAlignment = wdAlignVerticalTop
        .SuppressEndnotes = False
        .MirrorMargins = False
        .TwoPagesOnOne = False
        .BookFoldPrinting = False
        .BookFoldRevPrinting = False
        .BookFoldPrintingSheets = 1
        .GutterPos = wdGutterPosLeft
    End With
Дальнейший код в программе.

Ответить

Номер ответа: 5
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #5 Добавлено: 10.08.08 11:27
Сорри. Хотела жирным выделить строчку кода. Не получилось. :-(
и в коде не нужно.

Ответить

Номер ответа: 6
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #6
Добавлено: 10.08.08 12:53
    Это после макрорекордера текст. :)
    Большую часть в "PageSetup" можно просто выкинуть, по-видимому.

Ответить

Номер ответа: 7
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #7 Добавлено: 10.08.08 21:24
Никто не спорит. Можно конечно выкинуть.
Если не помнишь точно написание, то многое можно через макрорекодер "вспомнить". :-)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам