2021/12/30に更新

【GASで時短】スライドの文字数をカウントする

スライド

選択中のスライドに含まれている文字数をカウントするGoogle Apps Scriptです。スライド1枚あたりの文字数が決まっている会社もあるみたいなので作ってみました。

こんな悩みを解決します


  • 会社のルールで1スライドの文字数が決まっている。
  • スライドにある文字をカウントしたいが、標準の機能ではできない。

用意するもの


特にありません。今お使いのスライドに組み込めます。

このスクリプトで出来ること


  • 選択しているスライドの文字数をカウントすることができます。
  • テキストボックスだけではなく、図形の中の文字もカウントされます。
  • 改行はカウントされません。

使い方


1.スライドの作成

画像のようなサンプルのスライドを作成しました。テキストボックスと図形が含まれています。

2.スライドの指定

左側にスライドのサムネイルがあるので、文字数をカウントしたいスライドを選択します。
まずは1つのスライドを選択してみます。

3.スクリプトの実行

メニューから「選択しているスライドの文字数をカウントする」を実行します。

4.文字数の表示

スクリプトによりカウントされ、「選択されたスライドにはN文字あります」と表示されます。
このカウント数には改行コードは含まれていません。

5.複数スライドの場合

複数のスライドに含まれる文字数をカウントする場合は、左ペインで対象のスライドを全て選択してからスクリプトを実行します。

3ページのスライドで59文字存在するようです。

6.エラーメッセージ

スライド内のオブジェクトを編集中など、左ペインのスライドサムネイルが選択されていない状態でスクリプトを実行すると「左ペインでカウント対象のスライドを選択してください」というメッセージが表示され、スクリプトが終了します。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00032/index.html
 */

function onOpen() {
  const ui = SlidesApp.getUi();

  // メニューの表示名
  const menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('選択しているスライドの文字数をカウントする', 'countTextOnSlide');

  // メニューを画面に追加する
  menu.addToUi();
}


function countTextOnSlide() {

  // メッセージを表示するためにUIを取得
  const ui = SlidesApp.getUi();

  // 選択中のオブジェクトを取得
  const selection = SlidesApp.getActivePresentation().getSelection();

  // ページ以外が選択されている場合はメッセージを出して終了
  if (selection.getSelectionType() != SlidesApp.SelectionType.PAGE) {
    ui.alert('左ペインでカウント対象のスライドを選択してください');
    return;
  }

  // 選択されているスライドを取得
  const pages = selection.getPageRange().getPages();

  // 文字数カウント用の変数
  let count_text = 0;

  // ページの数だけ処理を繰り返す
  for (let i = 0; i < pages.length; i++) {
    // スライドを取得
    let slide = pages[i].asSlide();

    // スライド内のシェイプを取得
    let shapes = slide.getShapes();

    // シェイプの中のテキストを取得し、カウントする。シェイプ数だけ繰り返す
    for (let j = 0; j < shapes.length; j++) {
      count_text += shapes[j].getText().asString().replace(/\n/g, '').length;
    }
  }

  ui.alert('選択されたスライドには「' + count_text + '文字」あります')

}

関連するアプリ


タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp