GASでGoogleスライドのシェイプのテキストを置換する方法

replace

photo credit: Pictures by Ann Barn roof repair via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてシリーズでお伝えしています。

前回の記事はこちら!

GASでGoogleスライドの特定のシェイプをオブジェクトIDで取得する方法
GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてシリーズでお伝えしています。今回は、GASでGoogleスライドの特定のシェイプをオブジェクトIDで取得する方法です。

つまり、オブジェクトIDさえわかれば、操作対象のシェイプを取得して、そのテキストなどを操作するということができるわけですね。

そのテキストの設定する操作について見ていきましょう。

ということで、今回はGASでGoogleスライドのシェイプのテキストを置換する方法です。

では、行ってみましょう!

スポンサーリンク

前回のおさらい

まず前回のおさらいからです。

以下のコードが、オブジェクトIDからシェイプを取得するというものですね。

function getShapeByObjectId(){

  var url ='*****テンプレート用プレゼンテーションのURL*****';
  var presentation = SlidesApp.openByUrl(url);  
  
  var id = 'g7c06e4895a_0_4';
  var shape = presentation.getPageElementById(id).asShape();
  Logger.log(shape.getText().asString());
  
}

シェイプを取得して、その文字列を出力するというものでした。

シェイプの文字列を置換したい

今回は、取得したシェイプの文字列を置換する方法について見ていきます。

例えば、以下のようなスライドがあって、波かっこの箇所を指定の文字列に置換したいとします。

文字列を置換したいシェイプ

シェイプの文字列を設定する

まずは、シンプルにシェイプの文字列を設定する方法から見ていきます。

そのためには、そのTextRangeオブジェクトのsetTextメソッドを使います。

TextRangeオブジェクト.setText(文字列)

例えば、前述のスライドについて、真ん中のシェイプのオブジェクトIDが「g7c06e4895a_0_4」だったとして、以下のコードを実行してみましょう。

function setShapeString(){

  var url ='*****テンプレート用プレゼンテーションのURL*****';
  var presentation = SlidesApp.openByUrl(url);  

  var id = 'g7c06e4895a_0_4';
  var shape = presentation.getPageElementById(id).asShape();
  shape.getText().setText('ノンプロ研中級講座【GASコース】nnスコープ・関数');

}

すると…

GASにより文字列を設定したスライドのシェイプ

おお、うまくいきましたね!

シェイプの文字列を置換する

では、もう少し進めて今度はシェイプの文字列について置換をして差し替えるようにしましょう。

文字列を置換するには、replaceメソッドでしたね。

文字列.replace(置換前パターン, 置換後文字列)

それをもとに、こんなコードを作りました。

function replaceShapeString(){

  var url ='*****テンプレート用プレゼンテーションのURL*****';
  var presentation = SlidesApp.openByUrl(url);  

  var id = 'g7c06e4895a_0_4';
  var shape = presentation.getPageElementById(id).asShape();
  var str = shape.getText().asString();
  
  str = str
    .replace('{講座名}','中級講座')
    .replace('{コース名}', 'GASコース')
    .replace('{レッスン名}', 'スコープ・関数')
    
  shape.getText().setText(str);

}

スライドの文字列を初期の状態に戻して実行すると…

GASにより置換したスライドのシェイプ

ばっちりです。

まとめ

以上、GASでGoogleスライドのシェイプのテキストを置換する方法についてお伝えしました。

ポイントは以下の通りですね。

  • シェイプの文字列を設定するにはTextRangeオブジェクトのsetTextメソッド
  • 文字列の置換はreplaceメソッド

次回は、スプレッドシートのデータをもとにシェイプの文字列を置換するスクリプトを作成していきます。

GASでスプレッドシートのデータをもとにGoogleスライドの文字列を置換する
GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてお伝えしています。今回は、GASでスプレッドシートのデータをもとにGoogleスライドの文字列を置換するスクリプトを紹介します。

どうぞお楽しみに!

連載目次:GASでGoogleスライドのプレゼンテーションを楽々作成

定例会議用資料、レポート、プレゼンテーションなど、テンプレートをもとにGoogleスライドのプレゼンテーションを作るというお仕事はけっこうあります。全部は無理にしても、いくつかの段取りは、GASを使って自動化できるかも…!?このシリーズでは、そのようなGoogleスライドのプレゼンテーション自動化のアイデアと、スクリプトの書き方を紹介します!
  1. GASでGoogleスライドのプレゼンテーションを操作するはじめの一歩
  2. GASでGoogleスライドを操作するSlidesサービスの基礎の基礎
  3. GASでGoogleスライドのSlideオブジェクトの概要とその取得方法
  4. GASでGoogleスライドのテキストボックスや図形などを取得する方法
  5. GASでGoogleスライドのテキストボックスの文字列を取得する方法
  6. GASでGoogleスライドの特定のシェイプをオブジェクトIDで取得する方法
  7. GASでGoogleスライドのシェイプのテキストを置換する方法
  8. GASでスプレッドシートのデータをもとにGoogleスライドの文字列を置換する
  9. GASでGoogleスライドのプレゼンテーションをコピーする方法
  10. GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法
タイトルとURLをコピーしました