7

以下は私がしたことです:

  1. Google スライドで新しいプレゼンテーションを作成し、

  2. 使用したい新しいレイアウトを作成するために、マスター レイアウト ビューで定義済みのレイアウトの 1 つを編集しました。

  3. マスター レイアウトの名前を「会議」に編集し、

  4. 使用したい定義済みレイアウトの名前を「Office」に編集しました。

私の問題は、Google Script では、使用したいこの特定の定義済みレイアウトを参照できないことです。

これまでのところ、私のコードは次のとおりです。

function AddSlideToPresentatio() {

// The following line opens my presentation
var presentation = SlidesApp.openById('PresentationID');

//Now, I try to use my new layout
  presentation.appendSlide("Office");
}

なぜこれがうまくいかないのか、私にはまったくわかりません。実行しようとすると、次のエラーが表示されます。

「メソッド appendSlide(string) が見つかりません。(6 行目、ファイル "Office")。

以下は、私が試した組み合わせの一部であり、同様のエラーが発生します。

presentation.appendSlide('Office');
presentation.appendSlide(Office);
presentation.appendSlide("Meeting - Office");
presentation.appendSlide('Meeting - Office');
presentation.appendSlide(Meeting - Office);

使用presentation.appendSlide()するだけで新しいスライドが作成されますが、使用したいレイアウトではありません。

Google Apps Script Referenceには、次の 3 つの方法があります。

  1. appendSlide(),
  2. appendSlide(レイアウト)、
  3. appendSlide(predefinedLayout)

ただし、最後の 2 つの違いは何なのか理解できないようです。なぜなら、それらを使用しようとすると、同じことをしているように見えるからです。

4

2 に答える 2

4

appendSlideメソッドにレイアウト オブジェクトの名前を渡していますが、LayoutObjectパラメーターを渡す必要があります。

appendSlide(LayoutObject)

// The following line opens my presentation
var presentation = SlidesApp.openById('PresentationID');
// this will return an array of all the layouts
var layouts = presentation.getLayouts();

//if your first array item is the office layout
var newSlide = presentation.appendSlide(layouts[0]);

//Orelse you can search for your layout
var selectedLayout;
for(var item in layouts)
{
   //Logger.log(layouts[item].getLayoutName());
   if(layouts[item].getLayoutName() =='CUSTOM_1')
   {
     selectedLayout = layouts[item];
   }
}
var newSlide = presentation.appendSlide(selectedLayout);

PreDefinedLayout列挙型です。プレゼンテーションでよく見られるレイアウトが含まれています。利用可能なすべての定義済みレイアウトを読み取る

以下のように使用します。

presentation.appendSlide(SlidesApp.PredefinedLayout.SECTION_TITLE_AND_DESCRIPTION);
于 2017-11-20T07:51:52.213 に答える