メインコンテンツ

プログラムによるプレゼンテーションの作成

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

プログラムでプレゼンテーションを作成するには次のようにします。

  1. プレゼンテーション コンテナーを作成します。

  2. スライドを追加します。

  3. スライドにコンテンツを追加します。

  4. プレゼンテーションを生成します。

プレゼンテーション コンテナーの作成

プレゼンテーションを含めるための mlreportgen.ppt.Presentation オブジェクトを作成します。この例では、出力ファイル名に myPresentation を指定し、テンプレートは指定しません。

ppt = mlreportgen.ppt.Presentation("myPresentation.pptx");

テンプレートを指定しなかったため、PPT API は既定のテンプレートを使用します。テンプレートは、スライドの既定のレイアウトとスタイルを定義します。カスタム テンプレートを作成するには、PowerPoint プレゼンテーション テンプレートの設定を参照してください。書式プロパティと書式オブジェクトを使用して、テンプレートで定義された既定のスタイルをオーバーライドできます。プレゼンテーションの書式設定方法を参照してください。

スライドとスライド コンテンツの追加

スライドを追加するには、add メソッドを使用して、テンプレートで使用できるスライド レイアウトを指定します。PowerPoint プレゼンテーション テンプレートの設定を参照してください。この例では、既定のテンプレートに含まれている次のスライド レイアウトを使用します。

  • Title Slide

  • Title and Picture

  • Title and Content

  • Title and Table

スライドにコンテンツを追加するには、replace メソッドを使用して、コンテンツ プレースホルダーを新しいコンテンツに置き換えます。コンテンツの追加と置換の詳細については、プレゼンテーション コンテンツの追加と置換を参照してください。replace メソッドを使用するには、スライド レイアウトのプレースホルダーを識別する名前を指定しなければなりません。たとえば、Title Slide レイアウトには Title プレースホルダーと Subtitle プレースホルダーがあります。特定のスライド レイアウトのコンテンツ プレースホルダー名を見つける方法の詳細については、PowerPoint テンプレート要素へのアクセスを参照してください。

タイトル スライドの追加

タイトル スライドを追加するには、Title Slide レイアウトを使用します。

titleSlide = add(ppt,"Title Slide");

Title Slide レイアウトには次のプレースホルダーがあります。

  • Title

  • Subtitle

Title プレースホルダーをタイトル テキストに置き換えます。

replace(titleSlide,"Title","Create Histogram Plots");

タイトル テキストをパーツごとに作成することで、関数名 histogram を異なるフォントで書式設定できます。

subtitleText = mlreportgen.ppt.Paragraph("The ");
funcName = mlreportgen.ppt.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.ppt.Picture オブジェクトを作成します。

plot1 = mlreportgen.ppt.Picture("myPlot_img.png");

Title and Picture レイアウトを使用して、プレゼンテーションに画像スライドを追加します。

pictureSlide = add(ppt,"Title and Picture");

Title and Picture レイアウトには次のプレースホルダーがあります。

  • Title

  • Picture

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 レイアウトには次のプレースホルダーがあります。

  • Title

  • Content

タイトル テキストをパーツごとに作成することで、関数名 histogram を異なるフォントで書式設定できます。

titleText = mlreportgen.ppt.Paragraph("What You Can Do with ");
func = mlreportgen.ppt.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 レイアウトには次のプレースホルダーがあります。

  • Title

  • Table

Title プレースホルダーを置き換えます。

replace(tableSlide,"Title","Parameters");

テーブルを作成するには、いくつかの方法があります。テーブルの作成と書式設定を参照してください。この例では、テーブルを 1 行ずつ作成します。

  1. mlreportgen.ppt.Table オブジェクトとしてテーブルを作成します。

  2. テーブルの行ごとに mlreportgen.ppt.TableRow オブジェクトを作成します。

  3. mlreportgen.ppt.TableEntry オブジェクトを作成して、それらをテーブルの行に追加します。

paramTable = mlreportgen.ppt.Table();
colSpecs(2) = mlreportgen.ppt.ColSpec("6in");
colSpecs(1) = mlreportgen.ppt.ColSpec("3in");
paramTable.ColSpecs = colSpecs;

tr1 = mlreportgen.ppt.TableRow();
tr1.Style = {mlreportgen.ppt.Bold(true)};

tr1te1Text = mlreportgen.ppt.Paragraph("Value");
tr1te2Text = mlreportgen.ppt.Paragraph("Description");
tr1te1 = mlreportgen.ppt.TableEntry();
tr1te2 = mlreportgen.ppt.TableEntry();
append(tr1te1,tr1te1Text);
append(tr1te2,tr1te2Text);
append(tr1,tr1te1);
append(tr1,tr1te2);

tr2 = TableRow();
tr2te1Text = mlreportgen.ppt.Paragraph("auto");
tr2te1Text.Font = "Courier New";
tr2te2Text = mlreportgen.ppt.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 = mlreportgen.ppt.TableRow();
tr3te1Text = mlreportgen.ppt.Paragraph("scott");
tr3te1Text.Font = "Courier New";
tr3te2Text = mlreportgen.ppt.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 = mlreportgen.ppt.TableEntry();
tr3te2 = mlreportgen.ppt.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);

参考

| | | | | |

トピック