Sunuda öğeleri seçme

Seçim, açık bir sunu sayfasında şu anda seçili olan değerdir örneğin, vurgulanan metin aralığı veya tablo gibi. Bu kılavuzda ve Apps Komut Dosyası'nı kullanarak etkin bir sunuda seçimi ayarlayın.

Seçim, komut dosyası başladığında mevcut olan durumun anlık görüntüsüdür. Komut dosyası çalışırken kullanıcı tıklayıp seçimi değiştirirse bu değişiklikler yansıtılmaz.

Seçimler ve seçim türü

Seçimi okumak için: Seçim sınıfını kullanır. Bu sınıf, temel alınan öğelere bağlı olarak seçilen nesneleri almak için seçilen nesnelerin türünü girin.

SelectionType sıralaması seçili nesnelerin belirli türünü temsil eder. Örneğin, kullanıcı bir şekilde metin seçtiğinde, seçim türü METİN olmalıdır. Bu durumda, selection.getTextRange() yöntemini kullanarak seçili metin aralığını alabilirsiniz.

Seçimi içeren nesneyi de alabilirsiniz. Yukarıdaki örnekte devam edersek selection.getPageElementRange().getPageElements()[0] kullanarak seçili metni içeren şekli alabilirsiniz. Aynı şekilde, ilgili şekli içeriyorsa, geçerli etkin sayfa olmalıdır; - sayfayı almak için selection.getCurrentPage() işlevini kullanın.

Seçim okunuyor

Seçimi okumak için aşağıdaki örnekte gösterildiği gibi Presentation.getSelection() yöntemini kullanın:

slides/selection/selection.gs
const selection = SlidesApp.getActivePresentation().getSelection();

Geçerli sayfa okunuyor

Seçilen geçerli Sayfayı görüntülemesi için getSelection() ve getCurrentPage() yöntemlerine bir örnek:

slides/selection/selection.gs
const currentPage = SlidesApp.getActivePresentation().getSelection().getCurrentPage();

Geçerli sayfanın, aşağıdaki türlerden herhangi birinde olabileceğini unutmayın:

Geçerli sayfada bir veya daha fazla nesne seçili olabilir. Seçim türünü SelectionType belirler.

Seçim türüne göre seçim okunuyor

Aşağıdaki örnekte, bir seçim yapın.

slaytlar/seçim/seçim.g
const selection = SlidesApp.getActivePresentation().getSelection();
const selectionType = selection.getSelectionType();
let currentPage;
switch (selectionType) {
  case SlidesApp.SelectionType.NONE:
    console.log('Nothing selected');
    break;
  case SlidesApp.SelectionType.CURRENT_PAGE:
    currentPage = selection.getCurrentPage();
    console.log('Selection is a page with ID: ' + currentPage.getObjectId());
    break;
  case SlidesApp.SelectionType.PAGE_ELEMENT:
    const pageElements = selection.getPageElementRange().getPageElements();
    console.log('There are ' + pageElements.length + ' page elements selected.');
    break;
  case SlidesApp.SelectionType.TEXT:
    const tableCellRange = selection.getTableCellRange();
    if (tableCellRange !== null) {
      const tableCell = tableCellRange.getTableCells()[0];
      console.log('Selected text is in a table at row ' +
        tableCell.getRowIndex() + ', column ' +
        tableCell.getColumnIndex());
    }
    const textRange = selection.getTextRange();
    if (textRange.getStartIndex() === textRange.getEndIndex()) {
      console.log('Text cursor position: ' + textRange.getStartIndex());
    } else {
      console.log('Selection is a text range from: ' + textRange.getStartIndex() + ' to: ' +
        textRange.getEndIndex() + ' is selected');
    }
    break;
  case SlidesApp.SelectionType.TABLE_CELL:
    const tableCells = selection.getTableCellRange().getTableCells();
    const table = tableCells[0].getParentTable();
    console.log('There are ' + tableCells.length + ' table cells selected.');
    break;
  case SlidesApp.SelectionType.PAGE:
    const pages = selection.getPageRange().getPages();
    console.log('There are ' + pages.length + ' pages selected.');
    break;
  default:
    break;
}

Metin seçimlerini okuma

Metin seçimini okumak için şunları kullanabilirsiniz: Selection.getTextRange() yöntemidir. İki tür metin seçimi vardır:

  • Aralık seçimi: Bir şekil "Merhaba" metnini içeriyorsa ve "O" seçilirse döndürülen aralık startIndex=0 ve endIndex=2 değerine sahiptir.
  • İmleç seçimi: Bir şekil "Merhaba" metnini içeriyorsa ve imleç "H"den sonra ("H|ello"), döndürülen aralık startIndex=1 ve endIndex=1.

Seçimi değiştirme

Komut dosyası, kullanıcının seçimini değiştirebilir. Komut dosyasının sunuda yaptığı tüm seçim değişiklikleri yansıtılır komut dosyasının yürütülmesi boyunca sonraki seçim işlemlerinde kullanılır.

Seçim değişiklikleri, yalnızca komut dosyasından sonra kullanıcının tarayıcısına yansıtılır yürütme tamamlandığında veya Presentation.saveAndClose() çağrıldığında.

Geçerli sayfayı seçme

Etkin sunudaki bir sayfa, şunu çağırarak geçerli sayfa olarak seçilebilir: selectAsCurrentPage() yöntemiyle değiştirin. Bu yöntem önceki sayfa öğelerini, sayfayı veya metin seçimlerini kaldırır. Bu nedenle, bu yöntem, sayfadaki geçerli seçimlerin seçimini kaldırmanıza olanak sağlar. sayfasını ziyaret edin. Örneğin:

slaytlar/seçim/seçim.g
// Select the first slide as the current page selection and remove any previous selection.
  const selection = SlidesApp.getActivePresentation().getSelection();
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  slide.selectAsCurrentPage();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.CURRENT_PAGE
// selection.getCurrentPage() = slide
//

Sayfa öğesi seçme

Sayfadaki bir sayfa öğesini seçmek için PageElement.select() yöntemini kullanın. Bu işlem, önceden seçili olan sayfa öğelerinin de seçimini kaldırır.

Örneğin:

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const pageElement = slide.getPageElements()[0];
  // Only select this page element and remove any previous selection.
  pageElement.select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = pageElement
//

Birden fazla sayfa öğesi seçme

Seçime ilave sayfa öğeleri eklemek için şunu kullanın: PageElement.select(false) yöntemini çağırın. Tüm sayfa öğeleri geçerli sayfada olmalıdır.

slaytlar/seçim/seçim.g
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // First select the slide page, as the current page selection.
  slide.selectAsCurrentPage();
  // Then select all the page elements in the selected slide page.
  const pageElements = slide.getPageElements();
  for (let i = 0; i < pageElements.length; i++) {
    pageElements[i].select(false);
  }
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements() = pageElements
//

Seçim dönüştürülüyor

Komut dosyanızın yaptığı düzenlemeler, mevcut seçimi dönüştürebilir. Böylece, düzenleme sonucunda seçilen öğe değişir. Örneğin:

  1. A ve B şeklinde iki şekli seçtiğinizi varsayalım.
  2. Ardından komut dosyanız A şeklini kaldırır.
  3. Sonuç olarak seçim, yalnızca B şekli seçilir.

Aşağıdaki örnekte, değiştirilerek seçimin nasıl dönüştürülebileceği gösterilmektedir seçili sayfa öğeleri için geçerlidir.

slaytlar/seçim/seçim.g
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape1 = slide.getPageElements()[0].asShape();
  const shape2 = slide.getPageElements()[1].asShape();
  // Select both the shapes.
  shape1.select();
  shape2.select(false);
  // State of selection
  //
  // selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
  // selection.getCurrentPage() = slide
  // selection.getPageElementRange().getPageElements() = [shape1, shape2]
  //
  // Remove one shape.
  shape2.remove();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements() = [shape1]
//

Metin seçme

Bir şekilde veya tablo hücresinde bulunan metin, TextRange.select() yöntemini kullanın. Metin bir şekil içinde yer alıyorsa bu şekil de seçilir. Metin bir tablo hücresinde yer alıyorsa, ilgili tablo hücresi ve içerdiği hücre tablolarının her ikisi de seçili.

Bu işlem, üst sayfayı da geçerli sayfa olarak ayarlar.

Bir şekilde aralık seçimi

Aşağıdaki örnekte, kapsanan metinde aralık seçiminin nasıl yapılacağı gösterilmektedir gösteren resimdir.

slaytlar/seçim/seçim.g
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape = slide.getPageElements()[0].asShape();
  shape.getText().setText('Hello');
  // Range selection: Select the text range 'He'.
  shape.getText().getRange(0, 2).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 2
//

Bir şekilde imleç seçimi

Aşağıdaki örnekte, bir şekildeki metin içinde nasıl imleç seçimi yapılacağı gösterilmektedir.

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape = slide.getPageElements()[0].asShape();
  shape.getText().setText('Hello');
  // Cursor selection: Place the cursor after 'H' like 'H|ello'.
  shape.getText().getRange(1, 1).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 1
// selection.getTextRange().getEndIndex() = 1
//

Tablo hücresinde aralık seçimi

Aşağıdaki örnekte, kapsanan metinde aralık seçiminin nasıl yapılacağı gösterilmektedir ekleyin.

slaytlar/seçim/seçim.g
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const table = slide.getPageElements()[0].asTable();
  const tableCell = table.getCell(0, 1);
  tableCell.getText().setText('Hello');
  // Range selection: Select the text range 'He'.
  tableCell.getText().getRange(0, 2).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = table
// selection.getTableCellRange().getTableCells()[0] = tableCell
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 2
//

TableCell'de imleç seçimi

Aşağıdaki örnekte, kapsanan metinde imleç seçiminin nasıl yapılacağı gösterilmektedir ekleyin.

slaytlar/seçim/seçim.g
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const table = slide.getPageElements()[0].asTable();
  const tableCell = table.getCell(0, 1);
  tableCell.getText().setText('Hello');
  // Cursor selection: Place the cursor after 'H' like 'H|ello'.
  tableCell.getText().getRange(1, 1).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = table
// selection.getTableCellRange().getTableCells()[0] = tableCell
// selection.getTextRange().getStartIndex() = 1
// selection.getTextRange().getEndIndex() = 1
//

Metin düzenlemeleriyle seçimi dönüştürme

Aşağıdaki örnekte, seçili metin.

slaytlar/seçim/seçim.g
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape = slide.getPageElements()[0].asShape();
  const textRange = shape.getText();
  textRange.setText('World');
  // Select all the text 'World'.
  textRange.select();
  // State of selection
  //
  // selection.getSelectionType() = SlidesApp.SelectionType.TEXT
  // selection.getCurrentPage() = slide
  // selection.getPageElementRange().getPageElements()[0] = shape
  // selection.getTextRange().getStartIndex() = 0
  // selection.getTextRange().getEndIndex() = 6
  //
  // Add some text to the shape, and the selection will be transformed.
  textRange.insertText(0, 'Hello ');

// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 12
//

Seçim kaldırılıyor

Metin veya sayfa öğelerinin seçimini kaldırmak için açık bir yöntem yoktur. Ancak bu sonuç, Page.selectAsCurrentPage() veya pageElement.select() yöntemleri kullanılarak elde edilebilir.

Geçerli bir sayfa seçin

Aşağıdaki örnekte, bir sayfayı geçerli sayfa olarak ayarlayarak sayfadaki mevcut seçimlerin nasıl kaldırılacağı gösterilmektedir.

slaytlar/seçim/seçim.g
// Unselect one or more page elements already selected.
//
// In case one or more page elements in the first slide are selected, setting the
// same (or any other) slide page as the current page would do the unselect.
//
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  slide.selectAsCurrentPage();

Bir sayfa öğesi seçin

Aşağıdaki örnekte, bir sayfadaki geçerli seçimlerin nasıl kaldırılacağı gösterilmektedir sayfa öğesi seçerek ve böylece diğer tüm öğeleri seçimden kaldırarak.

slaytlar/seçim/seçim.g
// Unselect one or more page elements already selected.
//
// In case one or more page elements in the first slide are selected,
// selecting any pageElement in the first slide (or any other pageElement) would
// do the unselect and select that pageElement.
//
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  slide.getPageElements()[0].select();