Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » 新規Word文書のページ設定を行うExcelマクロ

新規Word文書のページ設定を行うExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「ページ設定 createobject wordapplication」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

どのアプリケーションの話かわかりませんが、Word以外のVBA(Visual Basic for Applications)などから、Wordのページ設定を行うにはどのようなコードを書くのかを探している方による検索でしょう。

参考になりそうな、思いっきりシンプルなExcelマクロをご紹介しておきます。

[スポンサードリンク]

新規Word文書のページ設定を行うサンプルマクロ

以下のExcelマクロを実行すると、新規にWord文書が作成され、用紙の向きが横長に設定されます。

Sub 新規Word文書のページ設定を行うサンプル()

 Dim wd_app As Object ' Word.Application
 Dim wd_doc As Object ' Word.Document

 Set wd_app = CreateObject("Word.Application")
 wd_app.Visible = True
 Set wd_doc = wd_app.Documents.Add
 wd_doc.PageSetup.Orientation = 1 ' wdOrientLandscape

 Set wd_doc = Nothing
 Set wd_app = Nothing

End Sub

一言でページ設定といっても、さまざまな設定項目がありますので、ここでは用紙の向きだけを指定しています。

サンプルマクロの解説

WordをCreateObjectしてから、
 Set wd_app = CreateObject("Word.Application")

WordのApplication.VisibleプロパティをTrueにすることで、Wordを表示しています。
 wd_app.Visible = True

実際にお仕事で利用するマクロの場合、VisibleプロパティをTrueにする処理を、最後にするほうが良さそうですが、ここでは少しでも理解しやすくするために最初に行っています。

WordのDocuments.Addメソッドで新規文書を作成して、
 Set wd_doc = wd_app.Documents.Add

WordのDocumentオブジェクトの、PageSetupオブジェクトのOrientationプロパティを設定しています。
 wd_doc.PageSetup.Orientation = 1

Word VBAの中ならば、
 wd_doc.PageSetup.Orientation = wdOrientLandscape
のように定数を使って指定できますが、これはExcel VBAから参照設定を行っていない前提のプロシージャですので、直接「1」を指定しています。

Excel VBE(Visual Basic Editor)でローカルウィンドウを表示してオブジェクト変数の様子を観察しつつ、Wordの動きも眺めつつ、ステップ実行してみることをおすすめします。

Word.ApplicationをCreateObjectしたあとは、すべてWordのオブジェクト式ですから、登場するオブジェクト式の詳細を調べたいときは、Word VBAのヘルプを確認しましょう。

また、その他のページ設定項目を指定したい場合は、Wordでマクロ記録を行うと参考になるコードが得られるはずです。

Microsoft MVP for Excelという立場から、ここではExcelマクロとしてご紹介していますが、上記のコードは、例えばPowerPoint VBAでもこのままの状態で動きます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » 新規Word文書のページ設定を行うExcelマクロ

「Office連携」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.