TOP > blog > エクセルからワードの用紙サイズ・余白を設定する
スクリプト
2017/02/15

エクセルからワードの用紙サイズ・余白を設定する

管理者用
blog

目標 エクセルからワードをコントロールする。
   宛名レイアウトをコントロールする。 ・・・・・・・・・・  

ワードを立ち上げると、A4サイズのドキメントが出来ます。

そのサイズをエクセルVBAにて変更してみましょう。


判らない時はマクロの記録です。

ワードのマクロ記録を使って、サイズ変更方法をトレースして見ます。

[開発]⇒[マクロの記録]⇒[ ドキメントサイズ]⇒[ページレイアウト]⇒[サイズ]⇒[その他の用紙サイズ]

⇒[ページ設定]⇒[用紙]⇒[幅]・[高さ] (100mm  148mm ) を入力
       [余白] のタブから  (上下左右 5mm ) に設定しました。

 マクロを見て見ましょう

ーーーーーーーーーーマクロの記録内容ーーーーーーーーーーーーーーーー

'
Sub Macro1()
' Macro1 Macro
'
'
    Selection.WholeStory
    With ActiveDocument.Styles(wdStyleNormal).Font
        If .NameFarEast = .NameAscii Then
            .NameAscii = ""
        End If
        .NameFarEast = ""
    End With
    With ActiveDocument.PageSetup
        .LineNumbering.Active = False
        .Orientation = wdOrientPortrait
        .TopMargin = MillimetersToPoints(5)
        .BottomMargin = MillimetersToPoints(5)
        .LeftMargin = MillimetersToPoints(5)
        .RightMargin = MillimetersToPoints(5)
        .Gutter = MillimetersToPoints(0)
        .HeaderDistance = MillimetersToPoints(15)
        .FooterDistance = MillimetersToPoints(17.5)
        .PageWidth = MillimetersToPoints(100)
        .PageHeight = MillimetersToPoints(148)
        .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
        .LayoutMode = wdLayoutModeLineGrid
    End With
    Application.Move Left:=286, Top:=118
End Sub

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ワードのマクロ記録からトレースして必要と思われる部分を使って、エクセルからワードのサイズを設定します。

エクセルにワードのサイズ変更のマクロを記述します。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


Sub Macro01()
  With ActiveDocument.PageSetup
      .PageWidth = CentimetersToPoints(10)
      .PageHeight = CentimetersToPoints(14.8)
      .TopMargin = MillimetersToPoints(5)
      .BottomMargin = MillimetersToPoints(5)
      .LeftMargin = MillimetersToPoints(5)
      .RightMargin = MillimetersToPoints(5)
 
  End With
End Sub

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 ワードを開いた状態で、エクセルのこのマクロを実行して下さい。

ワードのドキメントのサイズが変更されたはずです。

  

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 エクセルから、ワードを起動して、そのサイズを変更します。

ワードの起動とドキメントを追加の記述を追加しました。 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


Sub Macro01()

    Dim myWord As New Word.Application 
    Dim docWord As Document    

    Set myWord = CreateObject("Word.Application")'ワードを開く
    myWord.Visible = True           ' 必ず記述する事 Word を表示する
    Set docWord = myWord.Documents.Add'ドキメントを作る
      
  With ActiveDocument.PageSetup'サイズ/ 余白 設定
      .PageWidth = CentimetersToPoints(10)
      .PageHeight = CentimetersToPoints(14.8)
      .TopMargin = MillimetersToPoints(5)
      .BottomMargin = MillimetersToPoints(5)
      .LeftMargin = MillimetersToPoints(5)
      .RightMargin = MillimetersToPoints(5)
 
  End With

End Sub

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

最後に、文字を書いて見ます。

エクセルのB2セルに何か文字を入れておいて実行してみてください。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


Sub Macro01()

    Dim myWord As New Word.Application 
    Dim docWord As Document    

    Set myWord = CreateObject("Word.Application")'ワードを開く
    myWord.Visible = True           ' 必ず記述する事 Word を表示する
    Set docWord = myWord.Documents.Add'ドキメントを作る
      
  With ActiveDocument.PageSetup'サイズ/ 余白 設定
      .PageWidth = CentimetersToPoints(10)
      .PageHeight = CentimetersToPoints(14.8)
      .TopMargin = MillimetersToPoints(5)
      .BottomMargin = MillimetersToPoints(5)
      .LeftMargin = MillimetersToPoints(5)
      .RightMargin = MillimetersToPoints(5)
 
  End With

objSelection.TypeText "ワードVBAって簡単だなー!"
InData = Range("B2")
objSelection.TypeText vbCr "    " & InData

End Sub

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

以上で本日は、終わりですが、いかがでしょうか。

宛名レイアウトまでは、まだだいぶ先のように思われます。

 

関連記事