【実例付】GASでReplaceを使う方法を丁寧に解説

(最終更新日:2023年6月)

✔以下の疑問をお持ちの方へ向けた記事です

「Google Apps Script(GAS)で文字列の置換はどのように行うのだろうか?」
「GASのreplaceメソッドの書き方を学びたい」
「GASのreplaceメソッドの具体的な使用例を見て理解したい」

✔この記事を読むことで得られる知識

  • GASでのreplaceメソッドの基本的な使い方
  • replaceメソッドの応用法
  • GASでのreplaceメソッドを用いた具体的な使用例

この記事では、GASでのreplaceメソッドの基本的な使い方から、その応用法まで、具体的な例を交えて詳細に説明します。

また、正規表現を使った複雑な置換や大量のデータに対する文字列置換など、より実践的な内容も含めて紹介します。

ぜひ最後までお読みください。

Google Apps Script (GAS) の概要

こちらでは、Google Apps Script (GAS)の基本的な概要についてお伝えしていきます。

以下の内容を詳しく説明していきます。

  • GASとは何か?
  • GASを利用するメリット

GASとは何か?

Google Apps Script(GAS)は、Google Workspace(以前のG Suite)の各種アプリケーションと連携して、カスタマイズや自動化を実現するためのスクリプト言語です。

JavaScriptベースで書かれており、クラウド上で実行されます。

これにより、ユーザーはローカルの開発環境を必要とせず、ブラウザだけでコーディングからデプロイまでを行うことが可能です。

GASを利用するメリット

GASを使用する主なメリットは、Google Workspaceの各種サービスとの直接的な連携が可能であることです。

多くのアプリケーションにおいて、データのやり取りがスクリプト内で行えるようになります。

  • Gmail
  • Google Drive
  • Google Sheets
  • Google Docs

GASはサーバレスなので、ユーザーはインフラの管理を気にすることなく、ビジネスロジックに集中できます。

完全に無料で利用でき、コードはGoogle Drive上で編集・共有が可能なため、チームワークを大いに助けるでしょう。

GASを使ってデータを置換するための基礎知識

このセクションでは、GASを使用してデータを置換するための基本的な概念を説明します。

以下のトピックを取り上げます。

  • プロジェクトの作成
  • スクリプトエディタの概要
  • データ置換の基本的な流れ

プロジェクトの作成

GASを使用するには、まず新しいプロジェクトを作成する必要があります。

これはGoogle Drive上でおこなえます。

Driveの”新規”メニュー > その他 > Google Apps Script

これにより新しいプロジェクトが作成され、スクリプトエディタが開きます。

スクリプトエディタの概要

スクリプトエディタは、GASのコードを書き、テストし、デプロイするためのツールです。

エディタにはいくつかの重要な部分があります。

  • 中央部:コードエリアがあり、ここでGASのスクリプトを書く
  • 上部:ツールバーがあり、新しいスクリプトの作成、保存、実行などの機能を提供
  • 左側:ライブラリとサービスのパネルがあり、GASが連携できるGoogle Workspaceの各種サービスを表示

Replaceの基本構文

対象の文字列全体.replace(置換したい文字列, 置換後の文字列);

文字列を変数に入れて試してみましょう。

サンプルはこちら。

var originalString = "Hello, world!";
var replacedString = originalString.replace("world", "GAS");
Logger.log(replacedString); // 結果: "Hello, GAS!"

正規表現を使うことも可能。

var originalString = "apple apple apple";
var replacedString = originalString.replace(/apple/g, "orange");
Logger.log(replacedString); // 結果: "orange orange orange"

置換処理の実装: ステップバイステップチュートリアル

こちらでは、GASを使用したデータ置換の実装方法について説明します。

以下のトピックをカバーします。

  • GAS の基本構文
  • 置換対象のデータを取得する
  • 置換処理を実行する関数の作成
  • コードサンプルと画像

GAS の基本構文

GASの基本構文は、JavaScriptに基づいています。

  • 変数の宣言:varlet、またはconstを用いる
  • 関数:functionキーワードを使って定義
  • 配列やオブジェクト:角括弧[]や中括弧{}を使用
  • 条件分岐:ifelseelse if
  • 繰り返し処理:forwhile、またはforEachなどのループ

置換対象のデータを取得する

データの取得は、GASが連携するGoogleサービスのAPIを使用します。

例えば、スプレッドシートからデータを取得する場合、SpreadsheetAppサービスのメソッドを使用します。

スプレッドシートの特定のセルからデータを取得するには、スプレッドシートのIDとセルの位置(行と列)を指定します。

置換処理を実行する関数の作成

次に、読み込んだデータに対して置換処理を行う関数を作成します。

function performDataReplacement(data) {
  // 置換処理
  var replacedData = data.replace("置換元の文字列", "置換後の文字列");
  
  return replacedData;
}

引数data内の「置換元の文字列」を「置換後の文字列」に置換して、置換後のデータをreplacedDataとして返しています。

置換後のデータを保存する

最後に、置換後のデータを保存。

データを元のスプレッドシートに戻す場合は、再びSpreadsheetAppサービスを使用してください。

具体的には、対象のセルを指定してその値を置換後のデータに設定。

保存操作後は、スプレッドシートに即時反映されます。

コードサンプルと画像

上記のプロセスを組み合わせると、以下のようなスクリプトが完成します。

//関数
function performDataReplacement(data) {
  // 置換処理
  var replacedData = data.replace("置換元の文字列", "置換後の文字列");
  
  return replacedData;
}

//処理
var originalData = "置換元の文字列が含まれているデータ";
var replacedData = performDataReplacement(originalData);
Logger.log(replacedData);

実例: スプレッドシートのデータを置換する

こちらでは、実際にスプレッドシートのデータを置換する具体的な手順とその実行結果についてお伝えしていきます。

ここでは、以下のトピックについて詳しく説明します。

  • スプレッドシートへのアクセス
  • スプレッドシートからデータを読み込む
  • スプレッドシートのデータを置換する
  • 置換後のデータをスプレッドシートに書き戻す

スプレッドシートへのアクセス

まず、スプレッドシートにアクセスします。

スプレッドシートのURLの末尾にある長い文字列がスプレッドシートIDであり、これを用いてスプレッドシートにアクセスします。

以下のようにSpreadsheetApp.openById()メソッドを使ってスプレッドシートにアクセスします。

  var spreadsheet = SpreadsheetApp.openById(sheetId);

スプレッドシートからデータを読み込む

次に、スプレッドシートからデータを読み込みましょう。

具体的には、スプレッドシートのシートを指定し、そこからデータを取得するのです。

getRange()getValue()メソッドを使って、特定のセルのデータを読み込めます。

  // シートを指定
  var sheet = spreadsheet.getSheetByName("シート名");
  
  // データを読み込むセルの範囲を指定(例: A1セル)
  var cellRange = sheet.getRange("A1");
  
  // セルの値を取得
  var cellValue = cellRange.getValue();

スプレッドシートのデータを置換する

次に、取得したデータを置換します。

置換ルールを作成し、JavaScriptのreplace()メソッドを使用してデータを置換します。

置換ルールは正規表現を使用して複雑なパターンも対応できます。

置換後のデータをスプレッドシートに書き戻す

最後に、置換後のデータをスプレッドシートに戻します。

これには、先ほどと同じくgetRange()メソッドを使ってセルを指定し、setValue()メソッドを使って新しいデータを設定します。

この操作を行うと、スプレッドシートに即時反映されます。

   // シートを指定
  var sheet = spreadsheet.getSheetByName("シート名");
  
  // データを置換するセルの範囲を指定(例: A1セル)
  var cellRange = sheet.getRange("A1");
  
  // 新しいデータを設定
  cellRange.setValue("新しいデータ");

よくあるエラーと対処法

ここでは、GASを用いてデータ置換を行う際に遭遇する可能性があるエラーやトラブルについて考えていきます。

また、それぞれの問題を解決するための対処法についても具体的に示します。

このセクションでは以下の内容について解説します。

  • 具体的なエラーメッセージと原因
  • 問題の解決策

具体的なエラーメッセージと原因

まず、一部のエラーメッセージとそれが発生する原因について確認します。

TypeError: Cannot call method “getRange” of null

存在しないシートやスプレッドシートにアクセスしようとしたときに発生します。

Exception: You do not have permission to call SpreadsheetApp.openById. Required permissions: (https://www.googleapis.com/auth/spreadsheets)

適切な権限がないためにスプレッドシートにアクセスできない場合に発生します。

問題の解決策

各エラーには対応する解決策が存在します。

前述の「getRange」エラーの場合、シート名やスプレッドシートIDが正確か確認することが必要です。

また、「You do not have permission」のエラーについては、スクリプトの権限を確認し、必要ならばプロジェクトの設定から適切な権限を付与することで解決します。

エラーメッセージは問題のヒントを与えてくれますので、それを元に調査と修正を行うことが大切です。

応用例

前章までで、GASを用いた基本的なデータ置換の方法について理解を深めていただきました。

ここからは、より高度な例を通じて、その応用力を確認しましょう。

  • 複数条件によるデータ置換
  • 置換処理を自動化するトリガーの設定
  • 他のGoogleアプリケーションと連携する

複数条件によるデータ置換

単一の条件に基づいた置換だけでなく、複数の条件を同時に満たすデータを置換することも可能です。

例えば、ある列が特定の値を持ち、かつ別の列も特定の値を持つ行を対象とする場合など。

これを実現するためには、複数のif文を組み合わせて条件を作り、その全てを満たす場合にのみ置換処理を行います。

function performDataReplacement(data) {
  // 置換処理
  var replacedData = data;

  // 条件を組み合わせたデータ置換
  if (replacedData.includes("条件1の値") && replacedData.includes("条件2の値")) {
    replacedData = replacedData.replace("置換元の文字列", "置換後の文字列");
  }
  
  return replacedData;
}

function testPerformDataReplacement() {
  var originalData = "データの例: 条件1の値が含まれていて、かつ条件2の値も含まれています。";
  var replacedData = performDataReplacement(originalData);
  
  Logger.log("置換前のデータ: " + originalData);
  Logger.log("置換後のデータ: " + replacedData);
}

// テストの実行
testPerformDataReplacement();

置換処理を自動化するトリガーの設定

GASでは、トリガーを設定して特定の処理を自動化することが可能です。

時間ベースのトリガーを設定すれば、例えば毎日特定の時間にデータ置換を行う、といったスケジューリングが可能となります。

トリガーの設定はGASのスクリプトエディタから行うことができ、具体的な設定方法は公式ドキュメンテーションを参照してください。

他のGoogleアプリケーションと連携する

GASはスプレッドシートだけでなく、GmailやGoogleドキュメントなどの他のGoogleアプリケーションとも連携することが可能です。

たとえば、データ置換後にメールを自動送信したり、Googleドキュメントに結果を出力したりすることができます。

これにより、自動化された一連の作業フローを構築することが可能となります。

よくある質問 (FAQ) セクション

この章では、GASやデータ置換に関するよくある質問とその答えについてご紹介します。

あなたが遭遇するかもしれない問題に対する解決策を見つけるためのヒントを提供します。

  1. 質問: GASの使用にはどの程度のコーディングスキルが必要ですか?
    回答: 基本的なJavaScriptの知識があれば、GASのスクリプトを作成して実行することが可能です。複雑なタスクを自動化するには、JavaScriptの詳しい知識が必要になることがあります。
  2. 質問: GASを使用する際の注意点は何ですか?
    回答: GASのスクリプトは、Googleアカウントと関連付けられたクォータ制限があります。大量のメールを送信したり、大量のデータを処理する場合は、これらの制限に達する可能性があります。
  3. 質問: GASに関する資料やリソースはどこで見つけることができますか?
    回答: GASの公式ドキュメンテーションは最初に参照するべきリソースです。また、スタックオーバーフローやGitHubなどのプラットフォームも有用な情報源となります。

まとめ

当記事では、以下について詳しくお伝えしました。

  • Google Apps Script (GAS)の概要
  • スクリプトエディタの利用方法
  • GASを使ったデータの置換方法

今後の学習のために、以下のステップをおすすめします。

  1. GASの公式ドキュメンテーションを詳しく読む: この記事で紹介した内容をさらに深めるために、GASの公式ドキュメンテーションを活用してください。
  2. 具体的なプロジェクトに取り組む: 知識を実際のスキルに変える最善の方法は、自分でプロジェクトに取り組むことです。GASを使って自動化したいタスクを考え、それを実現するためのスクリプトを書いてみてください。
  3. GASのコミュニティに参加する: さまざまなオンラインコミュニティでは、GASに関する質問や情報が共有されています。自分の経験を共有したり、他のユーザーから学んだりすることで、より深い理解を得ることができます。