Home » ワードマクロ・Word VBAの使い方 » ヘッダー&フッター » Word VBAでヘッダーにShapeを挿入する

Word VBAでヘッダーにShapeを挿入する

対象:Word2007, Word2010, Word2013, Windows版Word2016

「word マクロ ヘッダー shape 挿入」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

ヘッダーに図形(Shape)を挿入する、Wordマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。

ヘッダー部分のオブジェクトモデルは複雑ですから、悩んでしまう方がいらっしゃるのはとても納得できます。

[スポンサードリンク]

ヘッダーに図形を挿入するサンプルマクロ

以下のようなマクロで、アクティブな文書の一つ目のセクションに、緑色の星型図形を挿入することができます。

Sub ヘッダーにShapeを挿入する()

 Dim shp As Shape

 Set shp = _
  ActiveDocument _
    .Sections(1).Headers(wdHeaderFooterPrimary) _
    .Shapes.AddShape( _
      Type:=msoShape5pointStar, _
      Left:=20, Top:=20, _
      Width:=100, Height:=100)

 shp.Fill.ForeColor.RGB = RGB(0, 255, 0)

End Sub

サンプルマクロで利用しているオブジェクトモデル

図形の挿入を行うのは、本文でもヘッダーでも、ShapesコレクションオブジェクトのAddShapeメソッドです。

Shapes.AddShapeメソッドの引数には、図形の種別・左端の位置・上端の位置・幅・高さを指定する必要があります。これが、
    .Shapes.AddShape( _
      Type:=msoShape5pointStar, _
      Left:=20, Top:=20, _
      Width:=100, Height:=100)
の部分です。

引数名:Type・Left・Top・Width・Heightから、図形の種別・左端の位置・上端の位置・幅・高さを指定していることがよくわかるはずです。

Shapes.AddShapeメソッドは実行されると挿入したの図形を表すShapeオブジェクトを返してきます。

ヘッダーにShapeを挿入するWordマクロ

このことを利用して上記のマクロでは、オブジェクト変数・shpに、Shapes.AddShapeメソッドの戻りをセットしてから、ColorFormatオブジェクトのRGBプロパティを使って、

ヘッダーにShapeを挿入するWordマクロ

前景色を緑色に変更する処理を入れています。
 shp.Fill.ForeColor.RGB = RGB(0, 255, 0)

ここまでの話は、ヘッダーに限定されないShapeオブジェクト全般に関するオブジェクト式についてです。

「word マクロ ヘッダー shape 挿入」
という検索をなさった方のメインテーマ・ヘッダーに関する記述は、
  ActiveDocument _
    .Sections(1).Headers(wdHeaderFooterPrimary) _
の部分です。

ActiveDocumentプロパティでアクティブな文書を表すDocumentオブジェクトを取得して、Document.Sectionsプロパティで全セクションを表すSectionsコレクションオブジェクトを取得して、

ヘッダーにShapeを挿入するWordマクロ

Sections.Itemメソッドの引数に「1」を指定することで一つ目のセクションを表すSectionオブジェクトを取得して、

ヘッダーにShapeを挿入するWordマクロ

Section.Headersプロパティで一つ目のセクションのすべてのヘッダーを表すHeadersFootersコレクションオブジェクトを取得して、

ヘッダーにShapeを挿入するWordマクロ

HeadersFooters.Itemメソッドの引数に、

ヘッダーにShapeを挿入するWordマクロ

WdHeaderFooterIndex列挙に定義されている定数・wdHeaderFooterPrimaryを指定することで

ヘッダーにShapeを挿入するWordマクロ

プライマリーヘッダーを表すHeaderFooterオブジェクトを取得しています。

Wordのヘッダー・フッターに関わるマクロを自分で作れるようになりたいという方には、オブジェクトブラウザーを何度も引きながら、オブジェクトの階層関係図を手書きしてみることをおすすめしておきます。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » ヘッダー&フッター » Word VBAでヘッダーにShapeを挿入する

「ヘッダー&フッター」の記事一覧

検索


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

.