最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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

このプレゼンテーションの例では、PPT API を使用したプレゼンテーションの作成に関するいくつかの一般的なタスクを示します。この例では、以下のスライドを生成します。

PPT API を使用して、完全な PowerPoint® プレゼンテーションをプログラムによって作成するには、以下のようにします。

  • プレゼンテーションのテンプレートとして、空の PowerPoint プレゼンテーションを設定します。

  • MATLAB®mlreportgen.ppt PPT API パッケージをインポートします。

  • プレゼンテーション コードを含む Presentation オブジェクトを作成します。

  • テンプレートのスライド レイアウトに基づいたスライドを追加します。

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

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

ヒント

MATLAB の PPT API プログラムの別の例を確認するには、「population_slides」と入力してください (Linux® でこの例を実行するには、Open Office ソフトウェアがインストールされていなければなりません)。

テンプレートの設定

PPT API プログラムは、PowerPoint プレゼンテーションをテンプレートとして使用し、プレゼンテーションを生成します。プログラムによって完全なプレゼンテーションを作成する場合は、空のテンプレートを使用します。テンプレートのスライドにコンテンツ (テキストやテーブルなど) がある場合、そのコンテンツは PPT API プログラムによって生成されるプレゼンテーションに表示されます。

PPT API には既定の PowerPoint テンプレートが用意されています。PPT API を使用して、既定のテンプレートのコピーを作成できます。これは、後で PPT API プログラムで使用するようにカスタマイズできます。このコードは、myTemplate というテンプレートを作成します。これは、既定の PPT API テンプレートのコピーです。

import mlreportgen.ppt.*
slidesFile = 'myTemplate.pptx';
slides = Presentation('myTemplate');

open(slides);

close(slides);

myTemplate.pptx ファイルを開きます。Windows® プラットフォームでは、このプレゼンテーションを MATLAB で開くことができます。

if ispc
    winopen(slidesFile);
end

スライド マスターやスライド レイアウトなどのテンプレート要素を確認するには、PowerPoint の [表示] ペインで [スライド マスター] をクリックします。

PowerPoint を対話的に使用して、テンプレートをカスタマイズします。プレゼンテーション全体に既定の書式設定を設定するには、スライド マスターをカスタマイズします。特定の種類のスライドに既定の書式設定を設定するには、スライド レイアウトをカスタマイズします。たとえば、スライド マスターを使用して、スライド タイトルに太字テキストを使用するようにテンプレートを設定できます。

  1. スライド レイアウトで、[マスター タイトルの書式設定] ボックスを右クリックします。

  2. コンテキスト メニューから [B] (太字) を選択します。また、テキストを中央揃えにするボタンを選択します。

  3. テンプレートを保存して閉じます。

PPT API パッケージのインポート

すべての PPT API クラス名には、接頭辞 mlreportgen.ppt が含まれます。PPT API オブジェクトのコンストラクターとメソッドを呼び出すときにパッケージ名を省略するには、このパッケージをインポートします。PPT API プログラムの先頭にこのステートメントを挿入します。

import mlreportgen.ppt.*;

メモ

この例のプログラムでは import 行は最初の行です。この例では、PPT API プログラムをセクションごとに作成するため、import コマンドを一度だけ使用します。完全なプログラムを表示するには、myNewPPTPresentation プログラムをクリックします。

Presentation オブジェクトの作成

Presentation オブジェクトを作成します。以下を指定します。

  • 生成されるプレゼンテーションの出力ファイルとしての myNewPPTPresentation.pptx

  • PowerPoint テンプレートとしての myTemplate.pptx

slidesFile = 'myNewPPTPresentation.pptx';
slides = Presentation(slidesFile,'myTemplate');

プレゼンテーション タイトル スライドの追加

プログラムによってスライドを追加するには、テンプレートのスライド レイアウトを指定します。スライド レイアウトの名前を確認するには、PowerPoint の [スライド マスター] タブで、スライド レイアウトの上にカーソルを置きます。

myTemplate テンプレートにはプレゼンテーション タイトル スライドのタイトル スライド スライド レイアウトが含まれます。タイトル スライド レイアウトを使用してスライドを追加するには、add メソッドを Presentation オブジェクトである slides で使用します。スライド レイアウト名には "レイアウト" という語を含めないでください。これは、スライド レイアウトの上にカーソルを置くと、スライド レイアウト名の末尾に表示されます。

presentationTitleSlide = add(slides,'Title Slide');

スライドにコンテンツを追加するには、スライド レイアウトのコンテンツ オブジェクトの名前を最初に特定します。

  1. PowerPoint で、スライド マスターのビューのまま、[ホーム] タブを選択します。

  2. [選択][オブジェクトの選択と表示] をクリックします。

  3. スライド レイアウトで、目的の名前のスライド レイアウトのコンテンツ項目をクリックします。

タイトルとサブタイトルを指定します。スライド、置き換えるコンテンツ項目の名前、タイトルとサブタイトルのテキストを指定します。サブタイトルには、histogram という語に別のフォントを指定するため、テキストに Paragraph オブジェクトを使用します。

replace(presentationTitleSlide,'Title','Create Histogram Plots');

subtitleText = Paragraph('The ');
funcName = Text('histogram');
funcName.Font = 'Courier New';

append(subtitleText,funcName);
append(subtitleText,' Function');
replace(presentationTitleSlide,'Subtitle1',subtitleText);

図のあるスライドの追加

スライドに図を追加するには、Picture オブジェクトを作成してイメージ ファイルを指定します。この例では MATLAB プロットを作成して、そのプロットをイメージ ファイルとして保存します。その図をスライドに追加できます。タイトルとコンテンツ スライド レイアウトを使用して、タイトルと図を追加します。

x = randn(10000,1);
h = histogram(x);

saveas(gcf,'myPlot_img.png');

plot1 = Picture('myPlot_img.png');

pictureSlide = add(slides,'Title and Content');
replace(slides,'Title','Histogram of Vector');
contents = find(pictureSlide,'Content');
replace(contents(1),plot1);

テキストのあるスライドの追加

スライド レイアウトに応じて、PowerPoint は追加するテキストを段落、箇条書きリスト、番号付きリストとして書式設定します。この例では、タイトルとコンテンツ スライドの別のインスタンスを作成します。これは、テキストを箇条書きリストとして書式設定します。入れ子の cell 配列を使用して、箇条書きのレベルを指定できます。

textSlide = add(slides,'Title and Content');

titleText2 = Paragraph('What You Can Do with ');
func = Text('histogram');
func.Font = 'Courier New';
append(titleText2,func);
contents = find(textSlide,'Title');
replace(contents(1),titleText2);

contents = find(textSlide,'Content');
replace(contents(1),{'Create histogram plot of x',...
'Specify:',{'Number of bins','Edges of the bins'},...
'Plot into a specified axes'});

テーブルのあるスライドの追加

スライドにテーブルを追加するには、いくつかの方法があります。この例では、テーブルを 1 行ずつ作成する方法を説明します。

  • Table オブジェクトを作成する。

  • テーブルの行ごとに TableRow オブジェクトを作成する。

  • TableEntry オブジェクトを作成して、それらをテーブルの行に追加する。

  • スライドにテーブルを追加する。

tableSlide = add(slides,'Title and Content');
contents = find(tableSlide,'Title');
titleText3 = Paragraph('Parameters');
replace(contents(1),titleText3);

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);

contents = find(tableSlide,'Content');
replace(contents(1),paramTable);

プレゼンテーションを生成して開く

PowerPoint プレゼンテーションを生成します。close メソッドを Presentation オブジェクトで使用します。

close(slides);

myNewPPTPresentation.pptx を開きます。Windows プラットフォームでは、それを MATLAB で開くことができます。

if ispc
    winopen(slidesFile);
end

myNewPPTPresentation のコード

myNewPPTPresentation を作成する完全な PPT API プログラムは次のとおりです。

メモ

myTemplate.pptx ファイルは現在のフォルダーになければなりません。そうでない場合は、テンプレートの設定を参照してください。

import mlreportgen.ppt.*;

slidesFile = 'myNewPPTPresentation.pptx';
slides = Presentation(slidesFile,'myTemplate');

% Add a title slide
presentationTitleSlide = add(slides,'Title Slide');
replace(presentationTitleSlide,'Title','Create Histograms Plots');

subtitleText = Paragraph('The ');
funcName = Text('histogram');
funcName.Font = 'Courier New';
>> append(subtitleText,funcName);
append(subtitleText,' Function');
replace(presentationTitleSlide,'Subtitle',subtitleText);

% Add a picture slide
x = randn(10000,1);
h = histogram(x);

saveas(gcf,'myPlot_img.png');

plot1 = Picture('myPlot_img.png');

pictureSlide = add(slides,'Title and Content');
replace(slides,'Title','Histogram of Vector');
contents = find(pictureSlide,'Content');
replace(contents(1),plot1);

% Add a text slide
textSlide = add(slides,'Title and Content');

titleText2 = Paragraph('What You Can Do with ');
func = Text('histogram');
func.Font = 'Courier New';
append(titleText2,func);
contents = find(textSlide,'Title');
replace(contents(1),titleText2);

contents = find(textSlide,'Content');
replace(contents(1),{'Create histogram plot of x',...
'Specify:',{'Number of bins','Edges of the bins'},...
'Plot into a specified axes'});

% Add a table slide
tableSlide = add(slides,'Title and Content');
contents = find(tableSlide,'Title');
titleText3 = Paragraph('Parameters');
replace(contents(1),titleText3);

paramTable = Table();
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('Scott''s rule 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);

contents = find(tableSlide,'Content');
replace(contents(1),paramTable);

% Generate and open the presentation
close(slides);

if ispc
    winopen(slidesFile);
end

関連するトピック