プログラムによるプレゼンテーションの作成
この例では、MATLAB® API for PowerPoint (PPT API) を使用して PowerPoint® プレゼンテーションを作成する方法を示します。この例では、次のスライドを生成します。

プログラムでプレゼンテーションを作成するには次のようにします。
PPT API 名前空間をインポートします。
プレゼンテーション コンテナーを作成します。
スライドを追加します。
スライドにコンテンツを追加します。
プレゼンテーションを生成します。
PPT API 名前空間のインポート
PPT API のクラスは、mlreportgen.ppt 名前空間に属します。この名前空間をインポートして、PPT API オブジェクトのコンストラクターとメソッドを呼び出すときに長い完全修飾名を使用する必要がないようにします。
import mlreportgen.ppt.*プレゼンテーション コンテナーの作成
プレゼンテーションを含めるための mlreportgen.ppt.Presentation オブジェクトを作成します。この例では、出力ファイル名に myPresentation を指定し、テンプレートは指定しません。
ppt = Presentation('myPresentation.pptx');テンプレートを指定しなかったため、PPT API は既定のテンプレートを使用します。テンプレートは、スライドの既定のレイアウトとスタイルを定義します。カスタム テンプレートを作成するには、PowerPoint プレゼンテーション テンプレートの設定を参照してください。書式プロパティと書式オブジェクトを使用して、テンプレートで定義された既定のスタイルをオーバーライドできます。プレゼンテーションの書式設定方法を参照してください。
スライドとスライド コンテンツの追加
スライドを追加するには、add メソッドを使用して、テンプレートで使用できるスライド レイアウトを指定します。PowerPoint プレゼンテーション テンプレートの設定を参照してください。この例では、既定のテンプレートに含まれている次のスライド レイアウトを使用します。
Title SlideTitle and PictureTitle and ContentTitle and Table
スライドにコンテンツを追加するには、replace メソッドを使用して、コンテンツ プレースホルダーを新しいコンテンツに置き換えます。コンテンツの追加と置換の詳細については、プレゼンテーション コンテンツの追加と置換を参照してください。replace メソッドを使用するには、スライド レイアウトのプレースホルダーを識別する名前を指定しなければなりません。たとえば、Title Slide レイアウトには Title プレースホルダーと Subtitle プレースホルダーがあります。特定のスライド レイアウトのコンテンツ プレースホルダー名を見つける方法の詳細については、PowerPoint テンプレート要素へのアクセスを参照してください。
タイトル スライドの追加
タイトル スライドを追加するには、Title Slide レイアウトを使用します。
titleSlide = add(ppt,'Title Slide');Title Slide レイアウトには次のプレースホルダーがあります。
TitleSubtitle
Title プレースホルダーをタイトル テキストに置き換えます。
replace(titleSlide,'Title','Create Histogram Plots');
タイトル テキストをパーツごとに作成することで、関数名 histogram を異なるフォントで書式設定できます。
subtitleText = Paragraph('The '); funcName = Text('histogram'); funcName.Font = 'Courier New'; append(subtitleText,funcName); append(subtitleText,' Function');
Subtitle プレースホルダーを SubtitleText に格納されているテキストに置き換えます。
replace(titleSlide,'Subtitle',subtitleText);画像のあるスライドの追加
スライド画像に使用するイメージ ファイルを作成します。
x = randn(10000,1);
h = histogram(x);
saveas(gcf,'myPlot_img.png');
イメージ ファイルから mlreportgen.ppt.Picture オブジェクトを作成します。
plot1 = Picture('myPlot_img.png');Title and Picture レイアウトを使用して、プレゼンテーションに画像スライドを追加します。
pictureSlide = add(ppt,'Title and Picture');Title and Picture レイアウトには次のプレースホルダーがあります。
TitlePicture
Title プレースホルダーをタイトル テキストに置き換え、Picture プレースホルダーを plot1 に置き換えます。
replace(pictureSlide,'Title','Histogram of Vector'); replace(pictureSlide,'Picture',plot1);
イメージ ファイルのコンテンツは、プレゼンテーションを閉じるときにプレゼンテーションにコピーされます。プレゼンテーションを閉じる前に、イメージ ファイルを削除したり上書きしたりしないでください。プレゼンテーション プログラムで複数のイメージ ファイルを作成する場合は、一意のファイル名を付けてください。
テキストのあるスライドの追加
テキストのあるスライドを追加するには、Title and Content レイアウトを使用します。
textSlide = add(ppt,'Title and Content');Title and Content レイアウトには次のプレースホルダーがあります。
TitleContent
タイトル テキストをパーツごとに作成することで、関数名 histogram を異なるフォントで書式設定できます。
titleText = Paragraph('What You Can Do with '); func = Text('histogram'); func.Font = 'Courier New'; append(titleText,func);
Title プレースホルダーおよび Content プレースホルダーを置き換えます。
replace(textSlide,'Title',titleText); replace(textSlide,'Content',{'Create histogram plot of x',... 'Specify:',{'Number of bins','Edges of the bins'},... 'Plot into a specified axes'});
テーブルのあるスライドの追加
テーブルのあるスライドを追加するには、Title and Table レイアウトを使用します。
tableSlide = add(ppt,'Title and Table');The Title and Table レイアウトには次のプレースホルダーがあります。
TitleTable
Title プレースホルダーを置き換えます。
replace(tableSlide,'Title','Parameters');
テーブルを作成するには、いくつかの方法があります。テーブルの作成と書式設定を参照してください。この例では、テーブルを 1 行ずつ作成します。
mlreportgen.ppt.Tableオブジェクトとしてテーブルを作成します。テーブルの行ごとに
mlreportgen.ppt.TableRowオブジェクトを作成します。mlreportgen.ppt.TableEntryオブジェクトを作成して、それらをテーブルの行に追加します。
paramTable = Table(); colSpecs(2) = ColSpec('6in'); colSpecs(1) = ColSpec('3in'); paramTable.ColSpecs = colSpecs; tr1 = TableRow(); tr1.Style = {Bold(true)}; tr1te1Text = Paragraph('Value'); tr1te2Text = Paragraph('Description'); tr1te1 = TableEntry(); tr1te2 = TableEntry(); append(tr1te1,tr1te1Text); append(tr1te2,tr1te2Text); append(tr1,tr1te1); append(tr1,tr1te2); tr2 = TableRow(); tr2te1Text = Paragraph('auto'); tr2te1Text.Font = 'Courier New'; tr2te2Text = Paragraph('The default auto algorithm chooses a bin width to '); append(tr2te2Text,'cover the data range and reveal the shape of the distribution.'); tr2te1 = TableEntry(); tr2te2 = TableEntry(); append(tr2te1,tr2te1Text); append(tr2te2,tr2te2Text); append(tr2,tr2te1); append(tr2,tr2te2); tr3 = TableRow(); tr3te1Text = Paragraph('scott'); tr3te1Text.Font = 'Courier New'; tr3te2Text = Paragraph(' Is optimal if the data is close '); append(tr3te2Text,'to being jointly normally distributed. This rule is '); append(tr3te2Text,'appropriate for most other distributions, as well.'); tr3te1 = TableEntry(); tr3te2 = TableEntry(); append(tr3te1,tr3te1Text); append(tr3te2,tr3te2Text); append(tr3,tr3te1); append(tr3,tr3te2); append(paramTable,tr1); append(paramTable,tr2); append(paramTable,tr3);
Table プレースホルダーを paramTable に置き換えます。
replace(tableSlide,'Table',paramTable);プレゼンテーションの生成と表示
close(ppt); rptview(ppt);
参考
mlreportgen.ppt.Presentation | mlreportgen.ppt.Slide | mlreportgen.ppt.Paragraph | mlreportgen.ppt.Text | mlreportgen.ppt.Table | mlreportgen.ppt.TableRow | mlreportgen.ppt.TableEntry