スライドマスター

PowerPoint におけるスライドマスターとは

スライドマスターは、プレゼンテーションのスライドのレイアウト、スタイル、テーマ、フォント、背景、およびその他のプロパティを定義するスライドテンプレートです。同じスタイルとテンプレートで会社のプレゼンテーション(または一連のプレゼンテーション)を作成したい場合は、スライドマスターを使用できます。

スライドマスターは、すべてのプレゼンテーションスライドの外観を一度に設定および変更できるため便利です。Aspose.Slidesは、PowerPoint のスライドマスター機構をサポートしています。

VBAを使用すると、スライドマスターを操作し、PowerPoint でサポートされているのと同じ操作(背景の変更、図形の追加、レイアウトのカスタマイズなど)を実行できます。Aspose.Slidesは、スライドマスターを使用し、基本的なタスクを実行するための柔軟なメカニズムを提供します。

これらは基本的なスライドマスター操作です:

  • スライドマスターの作成または追加。
  • プレゼンテーションスライドにスライドマスターを適用。
  • スライドマスターの背景を変更。
  • スライドマスターに画像、プレースホルダー、スマートアートなどを追加。

これらはスライドマスターに関連するより高度な操作です:

  • スライドマスターの比較。
  • スライドマスターのマージ。
  • 複数のスライドマスターの適用。
  • スライドをスライドマスター付きで別のプレゼンテーションにコピー。
  • プレゼンテーション内の重複するスライドマスターを見つける。
  • スライドマスターをプレゼンテーションのデフォルトビューとして設定。

スライドマスターの適用方法

スライドマスターで作業する前に、プレゼンテーションでどのように使用され、スライドに適用されるのかを理解しておくと良いでしょう。

  • すべてのプレゼンテーションには、デフォルトで少なくとも1つのスライドマスターがあります。
  • プレゼンテーションには複数のスライドマスターが含まれることがあります。複数のスライドマスターを追加して、プレゼンテーションの異なる部分を異なる方法でスタイル設定することができます。

Aspose.Slidesでは、スライドマスターはIMasterSlide型で表されます。

Aspose.SlidesのPresentationオブジェクトには、プレゼンテーション内で定義されたすべてのマスタースライドのリストを含むMastersのリストが含まれるIMasterSlideCollection型があります。

CRUD操作の他に、IMasterSlideCollectionインターフェイスには、次の便利なメソッドが含まれています:AddCloneおよびInsertCloneメソッドです。これらのメソッドは、基本的なスライドのクローン機能から継承されたものです。ただし、スライドマスターを扱う際に、これらのメソッドを使用することで複雑な設定を実装できます。

新しいスライドがプレゼンテーションに追加されると、スライドマスターが自動的に適用されます。前のスライドのスライドマスターがデフォルトで選択されます。

:プレゼンテーションスライドはSlidesリストに保存され、デフォルトでは各新しいスライドはコレクションの最後に追加されます。プレゼンテーションに1つのスライドマスターが含まれている場合、そのスライドマスターがすべての新しいスライドに選択されます。これが、新しいスライドを作成するたびにスライドマスターを定義する必要がない理由です。

原則はPowerPointとAspose.Slidesで同じです。たとえば、PowerPointでは、新しいプレゼンテーションを追加するときに、最後のスライドの下の下線をクリックするだけで新しいスライド(最後のプレゼンテーションのスライドマスター付き)が作成されます:

todo:image_alt_text

Aspose.Slidesでは、Presentationクラスの下でAddClone(ISlide)メソッドを使用して同等のタスクを実行できます。

スライド階層におけるスライドマスター

スライドマスターを使用すると、スライドレイアウトの最大限の柔軟性を得ることができます。スライドレイアウトは、スライドマスターと同じスタイル(背景、フォント、図形など)をすべて設定できます。ただし、複数のスライドレイアウトがスライドマスター上で組み合わされると、新しいスタイルが作成されます。スライドレイアウトを単一のスライドに適用すると、スライドマスターによって適用されたスタイルから変更することができます。

スライドマスターは、すべての設定項目に優先されます:スライドマスター -> スライドレイアウト -> スライド:

todo:image_alt_text

IMasterSlideオブジェクトには、スライドレイアウトのリストを持つLayoutSlidesプロパティがあります。Slide型には、スライドに適用されたスライドレイアウトへのリンクを持つLayoutSlideプロパティがあります。スライドとスライドマスター間の相互作用は、スライドレイアウトを介して行われます。

スライドマスターの構成要素

スライドマスターを変更する方法を理解するには、その構成要素を知っておく必要があります。これらはMasterSlideのコアプロパティです。

  • Background - スライドの背景を取得/設定します。
  • BodyStyle - スライドの本文のスタイルを取得/設定します。
  • Shapes - スライドマスターのすべての図形(プレースホルダー、画像フレームなど)を取得/設定します。
  • Controls - ActiveX コントロールを取得/設定します。
  • ThemeManager - テーママネージャーを取得します。
  • HeaderFooterManager - ヘッダーおよびフッターマネージャーを取得します。

スライドマスターのメソッド:

  • GetDependingSlides - スライドマスターに依存するすべてのスライドを取得します。
  • ApplyExternalThemeToDependingSlides - 現在のスライドマスターと新しいテーマに基づいて新しいスライドマスターを作成することを可能にします。新しいスライドマスターは、すべての依存スライドに適用されます。

スライドマスターの取得

PowerPointでは、スライドマスターにアクセスするには、[表示] -> [スライドマスター]メニューからアクセスできます:

todo:image_alt_text

Aspose.Slidesを使用して、次のようにスライドマスターにアクセスできます:

IMasterSlide master = pres.Masters[0];

IMasterSlideインターフェイスはスライドマスターを表します。Mastersプロパティ(IMasterSlideCollection型に関連)には、プレゼンテーション内で定義されたすべてのスライドマスターのリストが含まれています。

スライドマスターに画像を追加

スライドマスターに画像を追加すると、その画像はそのスライドマスターに依存するすべてのスライドに表示されます。

たとえば、会社のロゴといくつかの画像をスライドマスターに配置し、その後スライド編集モードに戻ります。すべてのスライドに画像が表示されるはずです。

todo:image_alt_text

Aspose.Slidesを使用して、スライドマスターに画像を追加できます:

using (Presentation pres = new Presentation())
{
    IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
    pres.Masters[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
    
    pres.Save("pres.pptx", SaveFormat.Pptx);
}

スライドマスターにプレースホルダーを追加

これらのテキストフィールドは、スライドマスターの標準プレースホルダーです:

  • マスターのタイトルスタイルの編集をクリック

  • マスターのテキストスタイルの編集

  • 第二レベル

  • 第三レベル

これらはスライドマスターに基づいたスライドにも表示されます。スライドマスターでこれらのプレースホルダーを編集すると、変更が自動的にスライドに適用されます。

PowerPointでは、[スライドマスター] -> [プレースホルダーの挿入]のパスを介してプレースホルダーを追加できます:

todo:image_alt_text

Aspose.Slidesを使用して、スライドマスターからテンプレート化されたプレースホルダーを持つスライドのより複雑な例を考えてみましょう:

todo:image_alt_text

スライドマスターでタイトルとサブタイトルの書式を次のように変更したいとします:

todo:image_alt_text

まず、スライドマスターオブジェクトからタイトルプレースホルダーの内容を取得し、次にPlaceHolder.FillFormatフィールドを使用します:

public static void Main()
{
    using (var pres = new Presentation())
    {
        IMasterSlide master = pres.Masters[0];
        IAutoShape placeHolder = FindPlaceholder(master, PlaceholderType.Title);
        placeHolder.FillFormat.FillType = FillType.Gradient;
        placeHolder.FillFormat.GradientFormat.GradientShape = GradientShape.Linear;
        placeHolder.FillFormat.GradientFormat.GradientStops.Add(0, Color.FromArgb(255, 0, 0));
        placeHolder.FillFormat.GradientFormat.GradientStops.Add(255, Color.FromArgb(128, 0, 128));
        
        pres.Save("pres.pptx", SaveFormat.Pptx);
    }
}

static IAutoShape FindPlaceholder(IMasterSlide master, PlaceholderType type)
{
    foreach (IShape shape in master.Shapes)
    {
        IAutoShape autoShape = shape as IAutoShape;
        if (autoShape != null)
        {
            if (autoShape.Placeholder.Type == type)
            {
                return autoShape;
            }
        }
    }

    return null;
}

スライドマスターに基づくすべてのスライドのタイトルスタイルと書式が変更されます:

todo:image_alt_text

スライドマスターの背景を変更する

マスタースライドの背景色を変更すると、プレゼンテーション内のすべての通常スライドが新しい色になります。このC#コードは、その操作を示しています:

using (var pres = new Presentation())
{
    IMasterSlide master = pres.Masters[0];
    master.Background.Type = BackgroundType.OwnBackground;
    master.Background.FillFormat.FillType = FillType.Solid;
    master.Background.FillFormat.SolidFillColor.Color = Color.Green;
    
    pres.Save("pres.pptx", SaveFormat.Pptx);
}

スライドマスターを別のプレゼンテーションにクローン

スライドマスターを別のプレゼンテーションにクローンするには、目的のプレゼンテーションからAddCloneメソッドを呼び出し、そこにスライドマスターを渡します。このC#コードは、スライドマスターを別のプレゼンテーションにクローンする方法を示しています:

using (Presentation presSource = new Presentation(), presTarget = new Presentation())
{
    IMasterSlide master = presTarget.Masters.AddClone(presSource.Masters[0]);
}

プレゼンテーションに複数のスライドマスターを追加

Aspose.Slidesでは、任意のプレゼンテーションに複数のスライドマスターとスライドレイアウトを追加できます。これにより、プレゼンテーションスライドに対してスタイル、レイアウト、書式設定オプションを多様に設定できます。

PowerPointでは、次のように「スライドマスターメニュー」から新しいスライドマスターとレイアウトを追加できます:

todo:image_alt_text

Aspose.Slidesを使用すると、次のようにAddCloneメソッドを呼び出して新しいスライドマスターを追加できます:

pres.Masters.AddClone(pres.Masters[0]);

スライドマスターを比較

マスタースライドは、IBaseSlideインターフェイスを実装しており、Equalsメソッドを含んでいます。これにより、スライドを比較することができます。これは、構造と静的コンテンツが同一のマスタースライドに対してtrueを返します。

二つのマスタースライドが等しいのは、その形状、スタイル、テキスト、アニメーション、およびその他の設定が等しい場合です。比較は、ユニークな識別子の値(例:SlideId)や動的コンテンツ(例:日付プレースホルダーの現在の日付の値)を考慮に入れません。

スライドマスターをプレゼンテーションのデフォルトビューに設定

Aspose.Slidesでは、スライドマスターをプレゼンテーションのデフォルトビューとして設定できます。デフォルトビューは、プレゼンテーションを開いたときに最初に表示されるものです。

このコードは、C#でスライドマスターをプレゼンテーションのデフォルトビューとして設定する方法を示しています:

pres.ViewProperties.LastView = ViewType.SlideMasterView;

未使用のマスタースライドを削除

Aspose.Slidesは、不要で未使用のマスタースライドを削除するためにRemoveUnusedMasterSlidesメソッド(Compressクラスから)を提供します。このC#コードは、PowerPointプレゼンテーションからマスタースライドを削除する方法を示しています:

using (Presentation pres = new Presentation("pres.pptx"))
{
    Aspose.Slides.LowCode.Compress.RemoveUnusedMasterSlides(pres);
    
    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}