Размер страницы и поля являются свойствами объекта PageSetup
. Обратите внимание, что такого рода информацию часто можно обнаружить, записав макрос ...
Поскольку в рассматриваемом коде используется поздняя привязка, вместо перечисления необходимо будет использовать числовые значения для размеров бумаги (wdPaperLetter
, например), и значения полей необходимо будет передать в баллов .
Я адаптировал код в вопросе для демонстрации. Кроме того, я сделал дополнительные оптимизации:
- Работа с объектами (особенно
Range
объекты), а не Selection
(логика, подобная обходу ActiveCell
и Activate
в Excel -точнее) - Используйте объявленный объект
Document
и
Dim blnNewApp As Boolean
Dim wordApp As Object 'Word.Application
Dim wordDoc As Object 'Word.Document
Dim wordRange as Object 'Word.Range
Dim j As Long
Set wordApp = GetObject(, "Word.Application")
If wordApp Is Nothing Then
Set wordApp = CreateObject("Word.Application")
blnNewApp = True
End If
Set wordDoc = wordApp.Documents.Add()
Set wordRange = wordDoc.Content
With ThisWorkbook.Sheets(strSHEET_NAME)
For j = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
strLineOfText = .Cells(j, "A").Text
wordRange.Text = strLineOfText & vbCr 'vbCr = a new paragraph
With wordDoc.PageSetup
.PaperSize = 2 'wdPaperLetter
.BottomMargin = 452 'CentimetersToPoints(1.5)
.TopMargin = 700 'CentimetersToPoints(2)
.LeftMargin = 680 'CentimetersToPoints(2)
.RightMargin = 680 'CentimetersToPoints(2)
End With
Next j
End With
wordApp.Visible = True
AppActivate wordApp.Caption