選択中のスライドに含まれている文字数をカウントするGoogle Apps Scriptです。スライド1枚あたりの文字数が決まっている会社もあるみたいなので作ってみました。
特にありません。今お使いのスライドに組み込めます。
画像のようなサンプルのスライドを作成しました。テキストボックスと図形が含まれています。
左側にスライドのサムネイルがあるので、文字数をカウントしたいスライドを選択します。
まずは1つのスライドを選択してみます。
メニューから「選択しているスライドの文字数をカウントする」を実行します。
スクリプトによりカウントされ、「選択されたスライドにはN文字あります」と表示されます。
このカウント数には改行コードは含まれていません。
複数のスライドに含まれる文字数をカウントする場合は、左ペインで対象のスライドを全て選択してからスクリプトを実行します。
3ページのスライドで59文字存在するようです。
スライド内のオブジェクトを編集中など、左ペインのスライドサムネイルが選択されていない状態でスクリプトを実行すると「左ペインでカウント対象のスライドを選択してください」というメッセージが表示され、スクリプトが終了します。
/**
* このスクリプトの説明、使い方はこちら。
* 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 + '文字」あります')
}