スライドマスター

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

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

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

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

基本的なスライドマスターの操作は以下の通りです:

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

スライドマスターに関するより高度な操作は以下の通りです:

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

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

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

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

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

Aspose.Slidesのプレゼンテーションオブジェクトには、プレゼンテーションに定義されているすべてのマスタースライドのリストを含むmastersIMasterSlideCollectionが含まれています。

CRUD操作に加えて、 IMasterSlideCollectionインターフェイスには、 add_cloneおよびinsert_cloneメソッドが含まれています。これらのメソッドは基本的なスライドクローン機能から継承されていますが、スライドマスターの処理を行う際には、複雑な設定を実装することができます。

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

注意:プレゼンテーションスライドはSlidesリストに格納され、すべての新しいスライドはデフォルトでコレクションの末尾に追加されます。プレゼンテーションが単一のスライドマスターを含む場合、そのスライドマスターは新しいスライドすべてに選択されます。このため、作成する新しいスライドごとにスライドマスターを定義する必要はありません。

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

todo:image_alt_text

Aspose.Slidesを使用すると、add_clone(ISlide)メソッドを使用して同等のタスクを実行できます。

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

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

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

todo:image_alt_text

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

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

スライドマスターがどのように変更できるかを理解するには、その構成要素を知る必要があります。これらはMasterSlideのコアプロパティです。

  • background スライドの背景を取得/設定。
  • body_style スライド本文のテキストスタイルを取得/設定。
  • shapes スライドマスターのすべての形状を取得/設定(プレースホルダー、画像フレームなど)。
  • controls - ActiveXコントロールを取得/設定。
  • theme_manager - テーママネージャを取得。
  • header_footer_manager - ヘッダーとフッターマネージャを取得。

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

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

スライドマスターの取得

PowerPointでは、スライドマスターにView -> スライドマスターのメニューからアクセスできます:

todo:image_alt_text

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

import aspose.slides as slides

with slides.Presentation() as pres:
    # プレゼンテーションのマスタースライドへのアクセスを提供
    masterSlide = pres.masters[0]

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

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

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

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

todo:image_alt_text

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

import aspose.slides as slides

with slides.Presentation() as pres:
    image = pres.images.add_image(open("image.png", "rb").read())
    pres.masters[0].shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, image)

    pres.save("pres.pptx", slides.export.SaveFormat.PPTX)

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

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

  • マスタータイトルスタイルを編集するにはクリック

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

  • 第2レベル

  • 第3レベル

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

PowerPointでは、スライドマスター -> プレースホルダーの挿入経路を通じてプレースホルダーを追加できます:

todo:image_alt_text

Aspose.Slidesを使用して、プレースホルダーを持つスライドのより複雑な例を考えてみましょう:

todo:image_alt_text

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

todo:image_alt_text

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

# マスターのタイトルプレースホルダーへの参照を取得
titlePlaceholder = masterSlide.shapes[0]

# フォーマットフィルをグラデーションフィルとして設定
titlePlaceholder.fill_format.fill_type = slides.FillType.GRADIENT
titlePlaceholder.fill_format.gradient_format.gradient_stops.add(0, draw.Color.red)
titlePlaceholder.fill_format.gradient_format.gradient_stops.add(50, draw.Color.green)
titlePlaceholder.fill_format.gradient_format.gradient_stops.add(100, draw.Color.blue)

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

todo:image_alt_text

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

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

masterSlide.background.type = slides.BackgroundType.OWN_BACKGROUND
masterSlide.background.fill_format.fill_type = slides.FillType.SOLID
masterSlide.background.fill_format.solid_fill_color.color = draw.Color.gray

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

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

# 新しいマスタースライドを追加 
pres1MasterSlide = pres.masters.add_clone(masterSlide)

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

Aspose.Slidesを使用すると、任意のプレゼンテーションに複数のスライドマスターとスライドレイアウトを追加できます。これにより、プレゼンテーションスライドのスタイル、レイアウト、および書式設定オプションをさまざまな方法で設定できます。

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

todo:image_alt_text

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

# 新しいマスタースライドを追加
secondMasterSlide = pres.masters.add_clone(masterSlide)

スライドマスターを比較

マスタースライドは、equals(slide)メソッドを含むIBaseSlideインターフェイスを実装しており、このメソッドを使用してスライドを比較できます。構造と静的コンテンツが同一のマスタースライドにはtrueが返されます。

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

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

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

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

import aspose.slides as slides

# プレゼンテーションファイルを表すPresentationクラスをインスタンス化
with slides.Presentation() as presentation:
    # デフォルトビューをスライドマスタービューに設定
    presentation.view_properties.last_view = slides.ViewType.SLIDE_MASTER_VIEW

    # プレゼンテーションを保存
    presentation.save("PresView.pptx", slides.export.SaveFormat.PPTX)

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

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

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres:
    slides.lowcode.Compress.remove_unused_master_slides(pres)
    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)