Ориентация страницы в word в vba

28K

08 июня 2007 года

Noter

3 / / 08.06.2007

Необходимо перенести данные из excel в word. Программа (на VBA) копирует, вставляет.
Однако таблица достаточно большая и необходимо перед вставкой в word сделать лист альбомный.
Подскажите как реализовать.
Заранее спасибо.

2 ответа

18K

08 июня 2007 года

pavel55

79 / / 14.05.2007

1) Открыть Word
2) Включить запись макроса
3) Вручную сделать ориентацию листа Альбомная
4) Остановить запись макроса
5) Посмотреть созданный макросом код и подчистить его и вы получите след. строку

Код:

ActiveDocument.PageSetup.Orientation = wdOrientLandscape

28K

08 июня 2007 года

Noter

3 / / 08.06.2007

Спасибо большое за ответ. Однако мне необходимо было именно, чтобы макрос, записанный в Excel поменял ориентацию страницы в Word.
Вроде бы разобрался. Фишка была в том, что команда
ActiveDocument.PageSetup.Orientation = wdOrientLandscape
не прокатывала, так как не определялась в VBA из-под Excel.

Set wrd = CreateObject(«Word.Application»)
wrd.ActiveDocument.PageSetup.Orientation = 1
(в общем 1 вместо wdOrientLandscape) изменило ситуацию

Meri

1

30.09.2007, 17:10. Показов 7392. Ответов 10


Студворк — интернет-сервис помощи студентам

Помогите! Как из VB поменять ориентацию страницы в Ворде?

0 / 0 / 1

Регистрация: 22.07.2007

Сообщений: 260

30.09.2007, 17:17

2

ActiveDocument.PageSetup.Orientation = wdOrientLandscape

или

ActiveDocument.PageSetup.Orientation = wdOrientPortrait



0



Meri

01.10.2007, 17:34

3

Спасибо за ответ.
Но тут возникла ещё одна проблема, не могу поменять положение курсора из VB. Если не трудно подскажите пожалуйста.

0 / 0 / 1

Регистрация: 22.07.2007

Сообщений: 260

01.10.2007, 19:19

4

Подробнее, какого курсора и где ?



0



Meri

02.10.2007, 10:33

5

Курсор в документе Word.

0 / 0 / 1

Регистрация: 22.07.2007

Сообщений: 260

02.10.2007, 10:56

6

Примерно так

Selection.MoveDown Unit:=wdLine, Count:=3
Selection.MoveRight Unit:=wdCharacter, Count:=12



0



Meri

02.10.2007, 11:16

7

Спасибо за подсказку. Все замечательно работает, но у меня в Ворде создается таблица которая ни как не хочет перемещаться в нужное положение, а создается всегда в начале документа, я думал это лечится положением курсора, куда поставишь, там и будет создаваться таблица , однако это почему-то не работает.HELP!!!

0 / 0 / 1

Регистрация: 22.07.2007

Сообщений: 260

02.10.2007, 12:18

8

Для того чтобы таблица опустилась ниже начала документа можно набить вначале переводы строки

Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeParagraph
Selection.TypeParagraph
‘создание таблицы
ActiveDocument.Tables.Add _
Range:=Selection.Range, _
NumRows:=3, NumColumns:=3



0



Meri

02.10.2007, 12:47

9

Спасибо за ценные советы, теперь работает как надо.

Meri

02.10.2007, 12:55

10

Слушай, AndreP, а ты случайно не знаешь как программно добавить колонтитулы?

0 / 0 / 1

Регистрация: 22.07.2007

Сообщений: 260

02.10.2007, 13:09

11

Ответ на все подобные вопросы сразу (уже раз пять про это здесь писал, почему до самих начинающих VBA программистов это не до ходит):
выбрать Tools / Macro / Record New Macros…
произвести нужные действия, остановить запись, посмотреть, что создал Word в записанном макросе.



0



I think this would be an easy soultion, but I can’t find the way…..

So the problem is this, I have an excel document with different sheets, but in just one sheet I want to create a table, after that (I can do it), that table will paste on a new word document.

In this new word document I want to set the orientation to landscape, but obviously I don’t want to make it manual, so when I use the .PageSetUp or .Orientation syntaxis, they give me an error.

I tried using With.WordApp.PageSetUp.Orientation = xlLandscape or wdLandscape but I can’t.

So there is a way that I can open a new word document, and automatically set the orientation to Landscape and after that paste the selection from excel to that page. And In this new document I tried to set up the Margins, and same case. .LeftMargin = CentimetersToPoints(1), but the error appears.

Option Explicit
Sub Imprimir()
    
Dim WordApp As Object
Dim f, ff As Date
Dim s, qty As Integer
Dim NoEncontrado As Boolean
Dim doc As Documents

Sheets("Entrega").Select
f = Sheets("Entrega").Range("D1").Value
qty = 1
s = 35
NoEncontrado = True
    Do While NoEncontrado = True
    
        Do While qty < 30
            Sheets("Concentrado").Select
            Cells(s, 7).Select
            ff = Sheets("Concentrado").Cells(s, 7).Value
                
                If f = ff Then
                Sheets("Concentrado").Select
                Sheets("Concentrado").Cells(s, 3).EntireRow.Select
                selection.Copy
                Sheets("Entrega").Select
                ActiveSheet.Range("A4").Select
                selection.PasteSpecial Paste:=xlPasteValues
                qty = qty + 1
                s = s - 1
                Rows("4:4").Select
                selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
                                
                Else
                qty = qty + 1
                s = s - 1
                
                End If
        Loop
        
        NoEncontrado = False
    Loop

Set WordApp = CreateObject("Word.Application")
Sheets("Entrega").Select
ActiveSheet.Range("G1").Select
Range("D3:S35").Select
selection.Copy
MsgBox (" Entrega de guardia del día " & f & " lista para imprimir"), vbInformation
With WordApp 'Con este codigo se abrira Word y se creara un documento nuevo
.Visible = True
.Activate
.Documents.Add
End With

WordApp.selection.PasteSpecial link:=True 'Se pegara en el documento lo seleccionado en la hoja de calculo
selection.pagesetup.Orientation = wdOrientLandscape
Set WordApp = Nothing
Sheets("Entrega").Select
Range("A4:CA34").Select
selection.ClearContents
End Sub

Алексей спрашивает:

Имеется документ с несколькими страницами, которые имеют разную ориентацию и формат (А4 и А3). Как определить формат и ориентацию текущей страницы?

Для этих целей можно воспользоваться, например, таким макросом (с функцией):

Sub Ident_Orient_PaperSize()
'Определение ориентации и формата страницы документа
If Selection.PageSetup.Orientation = wdOrientLandscape Then
   MsgBox "Ориентация текущей страницы - Альбомная" & vbCr _
& "Формат страницы - " & PaperSizeDoc(Selection.PageSetup.PaperSize)
Else
   MsgBox "Ориентация текущей страницы - Книжная" & vbCr _
& "Формат страницы - " & PaperSizeDoc(Selection.PageSetup.PaperSize)
End If
End Sub
Public Function PaperSizeDoc(iPS As Long) As String
Dim ps(42) As String
iPS = Selection.PageSetup.PaperSize
ps(0) = "wdPaper10x14"
ps(1) = "wdPaper11x17"
ps(2) = "wdPaperLetter"
ps(3) = "wdPaperLetterSmall"
ps(4) = "wdPaperLegal"
ps(5) = "wdPaperExecutive"
ps(6) = "wdPaperA3"
ps(7) = "wdPaperA4"
ps(8) = "wdPaperA4Small"
ps(9) = "wdPaperA5"
ps(10) = "wdPaperB4"
ps(11) = "wdPaperB5"
ps(12) = "wdPaperCSheet"
ps(13) = "wdPaperDSheet"
ps(14) = "wdPaperESheet"
ps(15) = "wdPaperFanfoldLegalGerman"
ps(16) = "wdPaperFanfoldStdGerman"
ps(17) = "wdPaperFanfoldUS"
ps(18) = "wdPaperFolio"
ps(19) = "wdPaperLedger"
ps(20) = "wdPaperNote"
ps(21) = "wdPaperQuarto"
ps(22) = "wdPaperStatement"
ps(23) = "wdPaperTabloid"
ps(24) = "wdPaperEnvelope9"
ps(25) = "wdPaperEnvelope10"
ps(26) = "wdPaperEnvelope11"
ps(27) = "wdPaperEnvelope12"
ps(28) = "wdPaperEnvelope14"
ps(29) = "wdPaperEnvelopeB4"
ps(30) = "wdPaperEnvelopeB5"
ps(31) = "wdPaperEnvelopeB6"
ps(32) = "wdPaperEnvelopeC3"
ps(33) = "wdPaperEnvelopeC4"
ps(34) = "wdPaperEnvelopeC5"
ps(35) = "wdPaperEnvelopeC6"
ps(36) = "wdPaperEnvelopeC65"
ps(37) = "wdPaperEnvelopeDL"
ps(38) = "wdPaperEnvelopeItaly"
ps(39) = "wdPaperEnvelopeMonarch"
ps(40) = "wdPaperEnvelopePersonal"
ps(41) = "wdPaperCustom"
PaperSizeDoc = ps(iPS)
End Function

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

Создание макроса из готового кода

Автоматическая запись макроса

Все советы с сайта Word Expert в книге Word 2003/2007. Народные советы

Доброго времени суток уважаемые читатели блога scriptcoding.ru. В этой статье мы рассмотрим объект PageSetup, который позволяет получить или задать основные параметры страницы в текстовом редакторе Word.

Класс PageSetup содержит множество полезных свойств, хотя у него только два метода. В плане установки параметров страницы в Word мы можем задать или получить размеры, отступы для колонтитулов, ориентацию, количество строк на странице и количество символов в строке, и многое другое. Параллельно советую почитать публикацию «Коллекция Word Pages и объекты Page«.

Для начала рассмотрим теоретическую часть публикации, а далее займемся программированием. Программный код будет на языке VBSCRIPT и JSCRIPT, которые работают под управлением сервера Windows Script Host.

Содержание

  1. Объект PageSetup – Основные параметры страницы в Word
  2. Свойства – установка параметров страницы в текстовом редакторе Word
  3. Методы – основные параметры страницы в Word

Объект PageSetup – Основные параметры страницы в Word

Доступ к объекту можно получить через одноименное свойство таких классов как:

  • Section – В данном случае мы можем обработать параметры для всех страниц в текстовом редакторе Word заданного раздела.
  • Document – В данном случае мы обрабатываем установки параметров для всех страниц в Word и для всех разделов заданного документа.

Свойства – установка параметров страницы в текстовом редакторе Word

основные параметры Word страницы

BottomMargin, TopMargin, LeftMarginи RightMargin– Свойства позволяют установить или получить значение отступа в пунктах от нижнего, верхнего, левого или правого края страницы в текстовом редакторе Word.

CharsLineи LinesPage– Установка параметров страницы в текстовом редакторе Word: количество символов в строке или количество строк на странице.

FirstPageTrayи OtherPagesTray– Свойства возвращают или устанавливают лоток для бумаги, который будет использоваться для первой страницы раздела или для всех страниц в разделе, кроме первой. Значения константы WdPaperTray:

  • wdPrinterAutomaticSheetFeed — 7 — Автоматическая подача листов.
  • wdPrinterDefaultBin — 0 – Лоток по умолчанию.
  • wdPrinterEnvelopeFeed — 5 – Подача конвертов.
  • wdPrinterFormSource — 15 — Формуляр.
  • wdPrinterLargeCapacityBin — 11 – Лоток большой емкости.
  • wdPrinterLargeFormatBin — 10 – Лоток большого формата.
  • wdPrinterLowerBin — 2 — Нижний лоток.
  • wdPrinterManualEnvelopeFeed — 6 – Ручная подача конвертов.
  • wdPrinterManualFeed — 4 – Ручная подача.
  • wdPrinterMiddleBin — 3 — Ближний лоток.
  • wdPrinterOnlyBin — 1 – Только лоток принтера.
  • wdPrinterPaperCassette — 14 — Кассета для бумаги.
  • wdPrinterSmallFormatBin — 9 – Лоток маленького формата.
  • wdPrinterTractorFeed — 8 — Автоматическая подача.
  • wdPrinterUpperBin — 1 — Верхний лоток.

PageHeightи PageWidth– Возвращают или задают такие установки параметров страницы в текстовом редакторе Word как высоту и ширину в пунктах.

PaperSize— Возвращает или устанавливает размер бумаги. Значение константы WdPaperSize.

FooterDistanceи HeaderDistance– Свойства задают или возвращают расстояние в пунктах для нижнего или верхнего колонтитула Word.

Orientation— Возвращает или устанавливает такие основные параметры страницы в текстовом редакторе Word, как ориентацию. Значение константы WdOrientation:

  • wdOrientLandscape — 1 — альбомная ориентация.
  • wdOrientPortrait — 0 — книжная ориентация

ShowGrid– Свойство позволяет показать (true) или скрыть (false) сетку. Начиная с версии Word 2010.

TwoPagesOnOne– Значение true – отображаются две страницы на одном листе. Чтение и запись.

VerticalAlignment— Возвращает или задает такие установки параметров страницы в Word, как вертикальное выравнивание текста на каждой странице в текстовом редакторе или разделе. Значение константы WdVerticalAlignment:

  • wdAlignVerticalTop — 0 – По верху
  • wdAlignVerticalCenter — 1 – По центру
  • wdAlignVerticalJustify — 2 — По ширине
  • wdAlignVerticalBottom — 3 – По низу.

BookFoldPrinting– Значение true – печать документа Word в виде книги. Чтение и запись.

BookFoldPrintingSheets— Возвращает или устанавливает количество страниц для каждой книги.

BookFoldRevPrinting– Значение true — чтобы изменить порядок печати для книги. Чтение и запись.

LayoutMode— Возвращает или устанавливает параметры размещения для текущего документа. Значение константы WdLayoutMode:

  • wdLayoutModeDefault — 0 — Сетка не используется чтобы выложить текст.
  • wdLayoutModeGenko — 3 — Текст выложен на сетке; пользователь указывает количество строк и количество символов в строке. При печати, Microsoft Word автоматически выравнивает символы по сетке.
  • wdLayoutModeGrid — 1 — Текст выложен на сетке; пользователь указывает количество строк и количество символов в строке. При печати, Microsoft Word автоматически не выровнять символы по сетке.
  • wdLayoutModeLineGrid — 2 — Текст выложен на сетке; пользователь указывает количество строк, но не количество символов в строке.

MirrorMargins– Значение true, если внутренние и внешние края соседних страниц имеют одинаковую ширину. Чтение и запись.

OddAndEvenPagesHeaderFooter— Значение true, если указанный объект PageSetup имеет различные верхние и нижние колонтитулы для нечетных пронумерованных и четных пронумерованных страниц. Чтение и запись.

DifferentFirstPageHeaderFooter— Значение true, если указанный класс PageSetup имеет уникальные верхние и нижние колонтитулы для первой страницы раздела. Чтение и запись.

SectionDirection— Возвращает или устанавливает такой параметр страницы в текстовом редакторе Word, как порядок чтения и выравнивание для указанных разделов. Значение константы WdSectionDirection:

  • wdSectionDirectionLtr — 1 — Отображает раздел с выравниванием по левому краю и порядок чтения влево.
  • wdSectionDirectionRtl — 0 — Отображает раздел с выравниванием по правому краю и порядок чтения справа.

SectionStart— Возвращает или устанавливает такой основной параметр страницы в Word, как тип разрыва раздела для указанного класса. Значение константы WdSectionStart:

  • wdSectionContinuous — 0 — Непрерывный.
  • wdSectionEvenPage — 3 — Четные страницы.
  • wdSectionNewColumn — 1 – Новый разрыв раздела колонки.
  • wdSectionNewPage — 2 – Новый разрыв раздела страницы.
  • wdSectionOddPage — 4 — Нечетные страницы.

LineNumbering— Возвращает или задает класс LineNumbering.

TextColumns— Возвращает коллекцию TextColumns.

Application — Возвращает объект Application, представляющий приложение Microsoft Word.

Методы – основные параметры страницы в Word

установка параметров Word страницы

SetAsTemplateDefault() — Установка параметра страниц в Word по умолчанию для активного документа и всех новых документов, основанных на активном шаблоне.

With ActiveDocument.PageSetup
   .LeftMargin = InchesToPoints(1)
   .RightMargin = InchesToPoints(1)
   .SetAsTemplateDefault
End With

TogglePortrait() — Переключение между портретной и альбомной ориентацией страницы Word для документа или раздела.

Хорошо, с теоретической частью мы закончили, теперь приступим к программированию.

параметры страниц в текстовом редакторе Word

Пример на языке программирования VBScript:

' ----------------------------------------------------------------------------
' Класс PageSetup
' Основные параметры страницы в Word
' PageSetup.vbs
' ----------------------------------------------------------------------------
Option Explicit
 
dim oWord, oDoc, oSel, i, MyText
 
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents
oDoc.Add()
oDoc.Add()
oWord.Visible = True
Set oSel = oWord.Selection
 
MyText = "Установка параметров страницы в Word. "
 
For i=0 to 40
    oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText
    oSel.TypeParagraph
Next
 
With oDoc(1).Sections(1).PageSetup
     .BottomMargin = 80
     .TopMargin = 80
     .LeftMargin = 80
     .RightMargin = 80
 
     .CharsLine = 40
     .LinesPage = 20
 
     .FirstPageTray = 10                                                                                                                                                                                                                   
 
     .PageHeight = 700
     .PageWidth = 700
 
     .FooterDistance = 150                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ' параметры страницы в текстовом редакторе
     .HeaderDistance = 150
 
     .VerticalAlignment = 2
     .DifferentFirstPageHeaderFooter = true
End With
 
oDoc(2).Sections(1).PageSetup.Orientation = 1
MsgBox "Изменение ориентации страницы документа " & oDoc(2).Name
oDoc(2).Sections(1).PageSetup.TogglePortrait

Пример на языке программирования JScript:

// ----------------------------------------------------------------------------
// Класс PageSetup
// Основные параметры страницы в Word
// PageSetup.js
// ----------------------------------------------------------------------------
var oWord1, oDoc1, oSel1, i, MyText1;
 
oWord1 = WScript.CreateObject("Word.Application");
oDoc1 = oWord1.Documents;
oDoc1.Add();
oDoc1.Add();
oWord1.Visible = true;
oSel1 = oWord1.Selection;
 
MyText1 = "Установка параметров страницы в Word. ";
 
for (i=0; i<=40; i++){
    oSel1.TypeText (MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1);
    oSel1.TypeParagraph();
}
 
with(oDoc1(1).Sections(1).PageSetup){
     BottomMargin = 80;
     TopMargin = 80;
     LeftMargin = 80;
     RightMargin = 80;
 
     CharsLine = 40;
     LinesPage = 20;
 
     FirstPageTray = 10;                                                                                                                                                                                                                    // параметры страницы в текстовом редакторе
 
     PageHeight = 700;
     PageWidth = 700;
 
     FooterDistance = 150;
     HeaderDistance = 150;
 
     VerticalAlignment = 2;
     DifferentFirstPageHeaderFooter = true;
}
 
oDoc1(2).Sections(1).PageSetup.Orientation = 1;
WScript.Echo("Изменение ориентации страницы документа " + oDoc1(2).Name);
oDoc1(2).Sections(1).PageSetup.TogglePortrait();

Хорошо, с теорией и программированием закончили, теперь стоит дать некоторые пояснения к программному коду. После того как мы запустим сценарий, будет создан новый текстовый документ, в цикле for (смотрите «Урок 9 по JScript — оператор цикла for» и «Урок 6 по VBScript: Циклы for…next и for each…next«) происходит вставка текста несколько раз, в том числе и вставка абзаца. Далее в блоке with происходит изменение параметров страницы в текстовом редакторе Word. Ну и все, в остальном вы и сами разберетесь.

Понравилась статья? Поделить с друзьями:
  • Ориентация страницы в word 2016 для одной страницы
  • Организация экономических расчетов в ms excel
  • Ориентация страницы в word 2013 для одной страницы
  • Организация хранение данных в excel это
  • Ориентация страницы в word 2007 на одной странице