プログラムによるプレゼンテーションの作成
この例では、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 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 = 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
レイアウトには次のプレースホルダーがあります。
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 = 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
レイアウトには次のプレースホルダーがあります。
Title
Table
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