I need a script to delete all the hidden slides in a Google Slides document

62 Views Asked by At

I see the function Remove(), but I'm not sure how to make remove identify which slides are hidden

This is what I tried:

function deleteHiddenSlides() {
  var presentation = SlidesApp.getActivePresentation();
  var slides = presentation.getSlides();

  for (var i = slides.length - 1; i >= 0; i--) {
    if (slides[i].isSkipFirstPage() || slides[i].isSkipped()) {
      presentation.removeSlide(i);
    }
  }
}

but this is the error I get: TypeError: slides[i].isSkipFirstPage is not a function

2

There are 2 best solutions below

0
On

I've fixed it :D

function deleteHiddenSlides() {
  var presentation = SlidesApp.getActivePresentation();
  var slides = presentation.getSlides();
  
  for (var i=1; i < slides.length; i++) {
    if (slides[i].isSkipped()) {
      slides[i].remove();
    }
   }
 }
0
On

I've managed to make it delete slides after the first one skipped using these changes:

function deleteHiddenSlides() {
  var presentation = SlidesApp.getActivePresentation();
  var slides = presentation.getSlides();
  
  for (var i = slides.length - 1; i >= 0; i--) {
    if (slides[i].isSkipped()) {
      slides.slice(i).forEach(s => s.remove());
    }
  }
}

Still far from ideal...