プレゼンテーション コンテンツの追加と置換
PPT API を使用して PowerPoint® プレゼンテーションのコンテンツを追加または置き換えるには、以下のようにします。
追加または置き換えるプレゼンテーション コンテンツを保持するように PowerPoint テンプレートを設定する。
Paragraph、Table、Pictureオブジェクトなどの PPT API コンテンツ オブジェクトを作成する。PPT API コンテンツ オブジェクトを使用して、プレゼンテーションのコンテンツを追加または置き換える。
コンテンツは、いくつかの方法で追加または置き換えることができます。たとえば、以下を行うことができます。
コンテンツを、プレゼンテーション全体で、または特定のスライドで局所的に追加または置き換える。
テキスト ボックスにコンテンツを追加する。
テキスト ボックス、テーブルまたは画像を同じ種類のコンテンツに置き換える。
プレースホルダーをそのプレースホルダーに対応するコンテンツに置き換える。
段落、テーブル、テキスト ボックスの一部を置き換えることはできません。コンテンツ オブジェクト全体を置き換えます。
テンプレートの設定
既存の PowerPoint プレゼンテーションに対して、テンプレートを変更することなくコンテンツを置き換えたり、追加することができます。ただし、PPT API を使用するには、テンプレートとスライド オブジェクトに関する以下の知識が必要です。
スライド マスター名
スライド レイアウト名
スライド プレースホルダー名とコンテンツ オブジェクト名
テーブル スタイル名
PowerPoint を使用してプレゼンテーションにプレースホルダーを追加した後、PPT API を使用してそのプレースホルダーをコンテンツに置き換えることができます。プレゼンテーションで特定のコンテンツ オブジェクトを置き換える際、PowerPoint を使用してコンテンツ オブジェクトに一意の名前を与えることができます。その後、PPT API でその名前を使用します。
PPT API プログラムでの PowerPoint テンプレートの使用の詳細については、以下を参照してください。
コンテンツの置換
コンテンツ オブジェクト名を replace メソッドと Slide オブジェクトで指定することで、コンテンツを置き換えることができます。たとえば、既定の PPT API テンプレートでは、タイトル スライド レイアウトに "タイトル" というコンテンツ オブジェクトが含まれます。
titleSlide = add(ppt,"Title Slide"); replace(titleSlide,"Title","This Is My Title");
プレゼンテーションのコンテンツを置き換えるには、find メソッドを Presentation または Slide オブジェクトで使用できます。find メソッドは、指定した検索値に一致する Name プロパティ値をもつコンテンツ オブジェクトを検索します。その後、更新する返された項目のインデックスを使用できます。
ppt = Presentation("myPresentation"); titleSlide = add(ppt,"Title Slide"); contents = find(ppt,"Title"); replace(contents(1),"This Is My Title");
テキストの追加と置換
以下の方法を使用して、プレゼンテーションにテキストを追加したり、置き換えることができます。
| テキストを指定する手法 | 関連する PPT API オブジェクト |
|---|---|
これらのオブジェクト作成の一環としてテキストを指定する。 |
|
段落にテキストを追加する。 | 以下の PPT API オブジェクトにテキストを追加する。
|
プレゼンテーションまたはスライドの | 文字ベクトル、
|
プレースホルダー オブジェクトでテキストを追加または置き換える。 |
プレースホルダーのテキストの追加と置換を参照してください。 |
テキスト ボックスに追加または置き換える。 |
テキスト ボックスのテキストの追加または置換を参照してください。 |
プレースホルダーのテキストの追加と置換
ContentPlaceholder と TextBoxPlaceholder のテキストは、以下を指定して追加または置き換えができます。
文字ベクトル
Paragraphオブジェクト文字ベクトルまたは
Paragraphオブジェクトの cell 配列、または文字ベクトルとParagraphオブジェクトの組み合わせ。入れ子にされた cell 配列は、入れ子にされたリスト項目 (インデントされたリスト項目) を指定します。
スライド レイアウトは、テキストが、段落、箇条書きリスト、番号付きリストのどれで表示されるかを指定します。
import mlreportgen.ppt.* name1 = "before"; ppt = Presentation(name1); open(ppt); add(ppt,"Comparison"); replace(ppt, "Left Content", "dummy content"); replace(ppt, "Right Content", "dummy content"); close(ppt); name2 = "after"; slides = Presentation(name2, name1); lefts = find(ppt, "Left Content"); rights = find(ppt, "Right Content"); para = replace(lefts(1), "Left item in the list" ); para.Italic = true; para.FontColor = "green"; replace(rights(1), { ... "Right List item", ... { "Inner right list item", "Other inner right list item" }... "Right List item", ... }); close(ppt); rptview(ppt);
テキスト ボックスのテキストの追加または置換
スライド内のテキスト ボックスは、テキストを追加可能なボックスです。プレゼンテーションのテキスト ボックスのコンテンツを、プログラムによって追加または置き換えることができます。
TextBoxオブジェクトを作成します。テキスト ボックスの位置と幅を指定します。addメソッドをTextBoxオブジェクトで使用して、テキストを追加します。addメソッドをPresentationオブジェクトで使用するか、addメソッドをSlideオブジェクトで使用して、TextBoxオブジェクトをプレゼンテーションに追加します。
以下に例を示します。
import mlreportgen.ppt.* ppt = Presentation("myPresentation.pptx"); open(ppt); titleSlide = add(ppt,"Title Slide"); tb = TextBox(); tb.X = "2in"; tb.Y = "2in"; tb.Width = "5in"; add(tb,"Text for text box"); add(titleSlide,tb); close(ppt);
テーブルの追加または置換
プレゼンテーションでテーブルを追加または置き換えるには、次のいずれかの方法を使用します。
スライドにテーブルを直接追加する。
スライド レイアウトのプレースホルダーをテーブルで置き換える。たとえば、
Title and ContentまたはTitle and Tableレイアウトがあるスライドを追加し、そのコンテンツまたはテーブル プレースホルダーをテーブルで置き換えます。テンプレート プレゼンテーションのテンプレート テーブルを別のテーブルで置き換える。
空白スライドへのテーブルの追加
mlreportgen.ppt.Table オブジェクトを作成し、スライドに追加します。
import mlreportgen.ppt.* ppt = Presentation("myPresentation.pptx"); open(ppt); tableSlide = add(ppt,"Blank"); magicTable = Table(magic(5)); magicTable.X = "3in"; magicTable.Y = "5in"; add(tableSlide,magicTable); close(ppt);
replace メソッドを使用して、すでにスライドに追加したテーブルを置き換えることができます。以下に例を示します。
import mlreportgen.ppt.* ppt = Presentation("myPresentation.pptx"); open(ppt); tableSlide = add(ppt,"Blank"); magicTable = Table(magic(5)); add(tableSlide,magicTable); newTable = Table(magic(4)); replace(magicTable,newTable); close(ppt);
テーブル プレースホルダーの置換
スライド レイアウトのテーブル プレースホルダーを置き換えることができます。たとえば、Title and Table レイアウトがあるスライドを追加します。テーブル プレースホルダーは、mlreportgen.ppt.TablePlaceholder オブジェクトで表されます。テーブル プレースホルダーを置き換えるには、TablePlaceholder オブジェクトの replace メソッドを使用します。
import mlreportgen.ppt.* ppt = Presentation("myPresentation.pptx"); open(ppt); tableSlide = add(ppt,"Title and Table"); table1 = Table(magic(9)); tblplaceholderObj = find(tableSlide,"Table"); replace(tblplaceholderObj,table1); close(ppt);
テンプレート テーブルの置換
既存のプレゼンテーションからプレゼンテーションを作成する場合、既存のプレゼンテーションのテーブル ("テンプレート テーブル") は、mlreportgen.ppt.TemplateTable オブジェクトで表されます。このオブジェクトのプロパティを設定することで、テンプレート テーブルの位置、幅、高さを変更できます。テンプレート テーブルの XML マークアップも変更できます。テンプレート テーブルを置き換えるには、TemplateTable オブジェクトの replace メソッドを使用します。たとえば、"Title and Table" レイアウトのスライドがある既存のプレゼンテーション myPresentation から、プレゼンテーションを作成するとします。次のコードでは、テンプレート テーブルが別のテーブルに置き換えられます。
import mlreportgen.ppt.* ppt = Presentation("myNewPresentation.pptx","myPresentation.pptx"); open(ppt); slide1 = ppt.Children(1); templateTableObj = find(slide1,"Table"); replace(templateTableObj,Table(magic(4))); close(ppt);
画像の追加または置換
プレゼンテーションで画像を追加または置き換えるには、次のいずれかの方法を使用します。
スライドに画像を直接追加する。
スライド レイアウトのプレースホルダーを画像で置き換える。たとえば、
Title and ContentまたはTitle and Pictureレイアウトのあるスライドを追加し、そのコンテンツまたは画像プレースホルダーを画像で置き換えます。テンプレート プレゼンテーションのテンプレート画像を別の画像で置き換える。
プレゼンテーションへの画像の追加
mlreportgen.ppt.Picture オブジェクトを使用し、飛行機の画像をプレゼンテーションに含めます。
プレゼンテーションを作成します。
import mlreportgen.ppt.* ppt = Presentation("myPicturePresentation.pptx"); open(ppt);
Title and Content レイアウトがあるスライドをプレゼンテーションに追加します。
add(ppt,"Title and Content");飛行機のイメージを使用して Picture オブジェクトを作成します。画像のサイズを指定します。
plane = Picture(which("b747.jpg")); plane.Width = "5in"; plane.Height = "2in";
スライドのコンテンツを画像に置き換えます。
replace(ppt,"Content",plane);プレゼンテーションを閉じて表示します。
close(ppt); rptview(ppt);
飛行機のイメージを使用して生成されたスライドは次のようになります。

画像の置換
プレゼンテーション内の画像を置き換えます。
プレゼンテーションを作成します。
import mlreportgen.ppt.* ppt = Presentation("myPictureReplacePresentation"); slide1 = add(ppt,"Blank");
mlreportgen.ppt.Picture オブジェクトを作成します。
plane = Picture(which("b747.jpg")); plane.X = "1in"; plane.Y = "1in"; plane.Width = "5in"; plane.Height = "2in";
スライドに画像を追加します。
add(slide1,plane);
2 つ目の画像を作成します。
peppers = Picture(which("peppers.png")); peppers.X = "1in"; peppers.Y = "1in"; peppers.Width = "3in"; peppers.Height = "3in";
飛行機の画像をピーマンの画像に置き換えます。
replace(plane,peppers);
プレゼンテーションを閉じて表示します。
close(ppt); rptview(ppt);
画像プレースホルダーから画像への置換
Title and Picture スライドをプレゼンテーションに追加し、タイトルと画像プレースホルダーを独自のタイトルと画像に置き換えます。
PPT API クラスに長い完全修飾名を使用せずに済むよう、PPT 名前空間をインポートします。
import mlreportgen.ppt.*プレゼンテーションを作成します。
ppt = Presentation("myPicturePlaceholderPresentation.pptx");
open(ppt);Title and Picture レイアウトのスライドを追加します。
slide = add(ppt,"Title and Picture");スライド オブジェクトの find メソッドを使用して、Title という名前のプレースホルダー オブジェクトを見つけます。
titlePlaceholderObj = find(slide,"Title")titlePlaceholderObj =
TextBoxPlaceholder with properties:
Bold: []
Font: []
ComplexScriptFont: []
FontColor: []
FontSize: []
Italic: []
Strike: []
Subscript: []
Superscript: []
Underline: []
BackgroundColor: []
VAlign: []
Name: 'Title'
X: []
Y: []
Width: []
Height: []
Style: []
Children: []
Parent: [1×1 mlreportgen.ppt.Slide]
Tag: 'ppt.TextBoxPlaceholder:30:125'
Id: '30:125'
find メソッドは、mlreportgen.ppt.TextBoxPlaceholder オブジェクトを返します。
プレースホルダーのコンテンツをタイトル テキストに置き換えます。
replace(titlePlaceholderObj,"Airplane");スライド オブジェクトの find メソッドを使用して、Picture という名前のプレースホルダー オブジェクトを見つけます。
picturePlaceholderObj = find(slide,"Picture")picturePlaceholderObj =
PicturePlaceholder with properties:
Bold: []
Font: []
ComplexScriptFont: []
FontColor: []
FontSize: []
Italic: []
Strike: []
Subscript: []
Superscript: []
Underline: []
BackgroundColor: []
VAlign: []
Name: 'Picture'
X: []
Y: []
Width: []
Height: []
Style: []
Children: []
Parent: [1×1 mlreportgen.ppt.Slide]
Tag: 'ppt.PicturePlaceholder:31:126'
Id: '31:126'
find メソッドは、mlreportgen.ppt.PicturePlaceholder オブジェクトを返します。
画像プレースホルダーを画像に置き換えます。
replace(picturePlaceholderObj,Picture("b747.jpg"));プレゼンテーションを閉じて表示します。
close(ppt); rptview(ppt);
PowerPoint® は画像の寸法を調整して、画像プレースホルダーに合わせます。画像プレースホルダーの寸法が Picture オブジェクトの寸法より大きい場合、画像はそれに比例して引き伸ばされます。寸法が小さい場合、画像は中央に配置されます。
テンプレート画像の置換
既存のプレゼンテーションからプレゼンテーションを作成する場合、既存のプレゼンテーションの画像 ("テンプレート画像") は、mlreportgen.ppt.TemplatePicture オブジェクトで表されます。このオブジェクトのプロパティを設定することで、テンプレート画像の位置、幅、高さを変更できます。テンプレート画像の XML マークアップも変更できます。テンプレート画像を置き換えるには、TemplatePicture オブジェクトの replace メソッドを使用します。たとえば、'Title and Picture' レイアウトのスライドがある既存のプレゼンテーション myPresentation から、プレゼンテーションを作成するとします。次のコードでは、テンプレート画像が別の画像に置き換えられます。
プレゼンテーション MyPicturePresentation を生成し、別のプレゼンテーションのテンプレート プレゼンテーションとして使用します。MyPicturePresentation には、1 つの画像を含む 1 つのスライドがあります。
import mlreportgen.ppt.* ppt = Presentation("MyPicturePresentation"); open(ppt); slide1 = add(ppt,"Title and Picture"); replace(slide1,"Title","Street"); replace(slide1,"Picture",Picture("street1.jpg"));
プレゼンテーションを閉じて表示します。
close(ppt);
MyPicturePresentation からプレゼンテーション MyNewPicturePresentation を作成します。MyPicturePresentation は MyNewPicturePresentation のテンプレート プレゼンテーションです。
ppt = Presentation("MyNewPicturePresentation","MyPicturePresentation"); open(ppt);
スライド オブジェクトの find メソッドを使用して、テンプレート画像を検索します。画像はテンプレート プレゼンテーション スライドから取得されているため、find は画像を mlreportgen.ppt.TemplatePicture オブジェクトとして返します。
slide1 = ppt.Children(1);
templatePictureObj = find(slide1,"Picture") templatePictureObj =
TemplatePicture with properties:
XMLMarkup: '<p:pic><p:nvPicPr><p:cNvPr id="8" name="Picture"/><p:cNvPicPr><a:picLocks noChangeAspect="1" noGrp="1"/></p:cNvPicPr><p:nvPr><p:ph idx="13" sz="quarter" type="pic"/></p:nvPr></p:nvPicPr><p:blipFill><a:blip r:embed="rId2"><a:extLst><a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}"><a14:useLocalDpi val="0" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main"/></a:ext></a:extLst></a:blip><a:stretch><a:fillRect/></a:stretch></p:blipFill><p:spPr/></p:pic>'
Name: 'Picture'
X: []
Y: []
Width: []
Height: []
Style: []
Children: []
Parent: [1×1 mlreportgen.ppt.Slide]
Tag: 'ppt.TemplatePicture:70:263'
Id: '70:263'
画像を別の画像に置き換えます。
street2 = Picture("street2.jpg");
replace(templatePictureObj,street2);プレゼンテーションを閉じて表示します。
close(ppt); rptview(ppt);