Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » VBAでスライドの背景色を指定する

VBAでスライドの背景色を指定する

対象:Excel2010, Excel2013, Windows版Excel2016

このサイト『インストラクターのネタ帳』のアクセスログを眺めていて
「powerpoint slide background.fill」
といった検索キーワードに気付きました。

VBAからスライド背景の書式設定を行うコードについて調べていらしたのでしょう。

[スポンサードリンク]

スライド背景を単色で塗りつぶすサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなプレゼンテーションの、1枚目のスライド背景が単色で塗りつぶされます。

Sub 背景色の変更_単色()
 With ActivePresentation.Slides(1)
  .FollowMasterBackground = msoFalse
  With .Background.Fill
   .Solid
   .ForeColor.RGB = RGB(255, 255, 204)
  End With ' .Background.Fill
 End With ' ActivePresentation.Slides(1)
End Sub

個別スライドで、背景書式を設定したいので、まずマスターの影響を受けないようにします。

With ActivePresentation.Slides(1)
 .FollowMasterBackground = msoFalse

その後、単色での塗りつぶしを設定して、

 With .Background.Fill
  .Solid

色を指定しています。

  .ForeColor.RGB = RGB(255, 255, 204)

背景をグラデーションにするサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなプレゼンテーションの、1枚目のスライド背景がグラデーションになります。

Sub 背景色の変更_グラデーション()
 With ActivePresentation.Slides(1)
  .FollowMasterBackground = msoFalse
  With .Background.Fill
   .TwoColorGradient _
     Style:=msoGradientHorizontal, _
     Variant:=2
   .ForeColor.RGB = RGB(255, 204, 255)
   .BackColor.RGB = RGB(204, 255, 255)
  End With ' .Background.Fill
 End With ' ActivePresentation.Slides(1)
End Sub

前述のプロシージャとの違いは、もちろん、まず塗りつぶし設定をグラデーションにしている点です。

 With .Background.Fill
  .TwoColorGradient _
    Style:=msoGradientHorizontal, _
    Variant:=2

その後、前景色と、

  .ForeColor.RGB = RGB(255, 204, 255)

背景色の設定を行っています。

  .BackColor.RGB = RGB(204, 255, 255)

サンプルマクロで使用しているオブジェクト式について

「powerpoint slide background.fill」
と検索なさった方は、背景色を設定する部分は、書けていたのではないかと想像しています。

Slide.FollowMasterBackgroundプロパティ

SlideオブジェクトのFollowMasterBackgroundプロパティを使って、

Slide.FollowMasterBackground

マスターの影響を受けないようにする部分がポイントです。

この設定につづく背景色を指定する各ステートメントは、オブジェクトの階層が深く、プロパティ名と返されるオブジェクト名が異なっている部分もありますので、落ち着いてオブジェクトブラウザーで確認しておくことをおすすめします。

Slide.Backgroundの戻りはShapeRange

まずSlideオブジェクトのBackgroundプロパティで返されるのは、

With ActivePresentation.Slides(1)
 With .Background.Fill

ShapeRangeオブジェクトです。

Slide.Background

ShapeRange.Fillの戻りはFillFormat

そのShapeRangeオブジェクトのFillプロパティで返されるのは、

 With .Background.Fill

FillFormatオブジェクトです。

ShapeRange.Fill

FillFormat.Solidはメソッド

続くSolidは、プロパティっぽい名前ですが,

 With .Background.Fill
  .Solid

FillFormatオブジェクトのメソッドです。

FillFormat.Solid

FillFormat.ForeColorの戻りはColorFormat

FillFormatオブジェクトのForeColorプロパティで返されるのは、

With .Background.Fill
 .Solid
 .ForeColor.RGB = RGB(255, 255, 204)

ColorFormatオブジェクトです。

FillFormat.ForeColor

FillFormat.TwoColorGradientメソッドの引数名

グラデーションを設定する

 With .Background.Fill
  .TwoColorGradient _
    Style:=msoGradientHorizontal, _
    Variant:=2

TwoColorGradientメソッドの引数名は、Styleのほうはいいとして、Variantという名前ながら指定するのは整数と、メソッド作成者の苦労が偲ばれます。

FillFormat.TwoColorGradient

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » VBAでスライドの背景色を指定する

「Slide・スライド」の記事一覧

検索


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

.