GASでドキュメント内のテキストを一括置換する方法

先生

GASでドキュメント編集を自動化!テキストの一括置換で作業効率UP🚀

GASでドキュメント内のテキストを一括置換する方法:初心者向けガイド

Google Apps Script(GAS)を使って、Googleドキュメント内のテキストを一括で置換する方法を解説します。この記事では、基本的なコードから応用例まで、初心者でも理解しやすいようにステップバイステップで説明します。

GASを使うことで、大量のドキュメントの編集作業を効率化し、時間と労力を大幅に削減できます。例えば、社名や商品名の変更、日付の修正など、手作業では時間がかかる作業も、GASを使えば数秒で完了します。

この記事を読めば、GASの基本的な知識がなくても、ドキュメント内のテキストを一括置換できるようになります。ぜひ、日々の業務効率化に役立ててください。

GASの基本設定とドキュメントへのアクセス

まず、Googleドキュメントを開き、「ツール」>「スクリプトエディタ」を選択してGASエディタを開きます。ここで、GASのコードを記述していきます。

次に、GASからドキュメントにアクセスするための権限を設定します。初回実行時には、Googleアカウントへのアクセス許可を求められるので、許可してください。

以下のコードは、アクティブなドキュメントにアクセスする基本的な例です。

function accessDocument() {
  // アクティブなドキュメントを取得
  var doc = DocumentApp.getActiveDocument();
  Logger.log(doc.getName()); // ドキュメント名を表示
}

このコードを実行すると、ログにドキュメント名が表示されます。DocumentApp.getActiveDocument()は、現在開いているドキュメントへの参照を取得するメソッドです。

テキストの一括置換コード

GASでテキストを置換するには、replaceText()メソッドを使用します。このメソッドは、検索するテキストと置換後のテキストを引数として受け取ります。

以下のコードは、ドキュメント内のすべての「古いテキスト」を「新しいテキスト」に置換する例です。

function replaceTextInDocument(oldText, newText) {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();

  //テキストを置換
  body.replaceText(oldText, newText);
}

上記のコードでは、DocumentApp.getActiveDocument()でドキュメントを取得し、getBody()でドキュメントの本文を取得しています。そして、replaceText(oldText, newText)でテキストを置換しています。

この関数を呼び出すには、以下のように記述します。

function myFunction(){
 replaceTextInDocument("古いテキスト", "新しいテキスト");
}

「古いテキスト」と「新しいテキスト」を、実際に置換したいテキストに置き換えてください。

正規表現を使った高度な置換

replaceText()メソッドは、正規表現もサポートしています。正規表現を使うことで、より複雑なパターンに一致するテキストを置換できます。

例えば、日付の形式を統一する場合などに便利です。以下のコードは、正規表現を使って日付の形式を「YYYY/MM/DD」から「YYYY-MM-DD」に置換する例です。

function replaceDateFormat() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();

  // 正規表現を使って日付の形式を置換
  body.replaceText("\\d{4}/\\d{2}/\\d{2}", function(match) {
    return match.replace(/\//g, "-");
  });
}

このコードでは、\\d{4}/\\d{2}/\\d{2}という正規表現で「YYYY/MM/DD」形式の日付を検索し、match.replace(/\//g, "-")で「/」を「-」に置換しています。

正規表現を使いこなすことで、様々なテキスト置換のニーズに対応できます。正規表現の構文については、様々なサイトで解説されているので、必要に応じて学習してください。

エラー処理と注意点

GASでテキスト置換を行う際には、エラー処理も重要です。例えば、置換対象のテキストが見つからない場合や、権限がない場合などにエラーが発生する可能性があります。

エラーが発生した場合に備えて、try-catch文を使って例外処理を行うことをおすすめします。

function replaceTextWithErrorHandler(oldText, newText) {
  try {
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    body.replaceText(oldText, newText);
  } catch (e) {
    Logger.log("エラーが発生しました: " + e);
  }
}

また、大量のテキストを置換する場合は、GASの実行時間制限に注意する必要があります。GASの実行時間は最大6分なので、それ以上かかる場合は、処理を分割するなどの対策が必要です。

さらに、ドキュメントのバックアップを取っておくことを強く推奨します。誤った置換を行った場合に、元の状態に戻せるようにするためです。

参考リンク

まとめ

GASを使うことで、Googleドキュメント内のテキストを一括で置換できます。基本的なコードから正規表現を使った高度な置換まで、様々な方法があります。

エラー処理や実行時間制限に注意しながら、GASを活用して、ドキュメント編集作業を効率化しましょう。

今回紹介したコードを参考に、ぜひGASでのテキスト置換に挑戦してみてください。