エクセルからワードの用紙サイズ・余白を設定する
管理者用
目標 エクセルからワードをコントロールする。
宛名レイアウトをコントロールする。 ・・・・・・・・・・
ワードを立ち上げると、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
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以上で本日は、終わりですが、いかがでしょうか。
宛名レイアウトまでは、まだだいぶ先のように思われます。