【Googleドキュメント】Apps Scriptで本文中の電話番号フォーマット統一!正規表現での整形

【Googleドキュメント】Apps Scriptで本文中の電話番号フォーマット統一!正規表現での整形
🛡️ 超解決

Googleドキュメントで作成した文書に、様々な形式で書かれた電話番号が混在していて困った経験はありませんか。手動で一つずつ修正するのは時間がかかり、見落としも発生しやすいものです。そこで便利なのが、Apps Scriptと正規表現を使った自動整形です。本記事では、Googleドキュメント内のすべての電話番号を統一したフォーマットに変換する方法を、具体的なスクリプトとともに解説します。

【要点】Apps Scriptで電話番号を自動整形するポイント

  • 正規表現でパターン検出: ハイフンや括弧など様々な表記を一つのパターンで捉え、統一した書式に変換します。
  • replaceTextメソッドの活用: ドキュメント全体のテキストを一括で置換し、見落としを防ぎます。
  • 実行前のバックアップ推奨: スクリプトを実行する前に文書のコピーを作成し、誤置換に備えます。

ADVERTISEMENT

Apps Scriptで電話番号を整形するメリット

Googleドキュメントで電話番号を扱う際、入力者によって「090-1234-5678」「(03)1234-5678」「0120-345-678」など表記がバラバラになりがちです。手作業で統一するには多くの工数がかかり、見落としによる不統一も発生します。Apps Scriptを使えば、正規表現によりあらゆる表記パターンを一度に捉え、指定したフォーマットに自動変換できます。これにより、文書の見栄えが整い、情報の一貫性が保たれます。スクリプトは一度作成すれば繰り返し使えるため、大量の文書を扱う業務で特に効果を発揮します。

電話番号フォーマットを統一する具体的な手順

  1. スクリプトエディタを開く
    Googleドキュメントのメニューから「拡張機能」→「Apps Script」を選択し、スクリプトエディタを開きます。デフォルトで「マイドキュメント」というプロジェクトが作成されます。
  2. スクリプトコードを記述する
    エディタに以下のコードを貼り付けます。このコードは、ドキュメント内の電話番号を「090-1234-5678」形式に統一します。正規表現では、ハイフン・括弧・スペースなどの区切り文字を許容し、数字部分を抽出して再整形します。
  3. スクリプトを保存して実行する
    コードを保存し、実行ボタンをクリックします。初回実行時には権限の承認が必要です。承認後、スクリプトがドキュメント全体を走査し、電話番号を変換します。変換後は元の書式が失われるため、あらかじめ文書のコピーを取っておきましょう。

以下にスクリプトの一例を示します。この例では、日本の電話番号(固定電話・携帯電話・フリーダイヤル)を想定していますが、パターンを調整することで他の国や特殊な番号にも対応できます。

function formatPhoneNumbers() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  // 日本の電話番号パターン(ハイフン・括弧・スペースを許容)
  var pattern = /(0[1-9]\d{0,3}[-\s]*\(?\d{1,4}\)?[-\s]*\d{3,4})/g;
  var replacement = function(match) {
    // 数字のみ抽出
    var digits = match.replace(/\D/g, '');
    // 桁数に応じて整形(例: 11桁: 090-1234-5678, 10桁: 03-1234-5678)
    if (digits.length === 11) {
      return digits.slice(0,3) + '-' + digits.slice(3,7) + '-' + digits.slice(7);
    } else if (digits.length === 10) {
      return digits.slice(0,3) + '-' + digits.slice(3,6) + '-' + digits.slice(6);
    } else if (digits.length === 8) {
      return digits.slice(0,4) + '-' + digits.slice(4);
    } else {
      // そのまま返すか、別の処理
      return match;
    }
  };
  body.replaceText(pattern, replacement);
}

スクリプト実行時の注意点とよくあるトラブル

置換が意図しない文字列に影響する場合

正規表現のパターンが広すぎると、郵便番号や数値など電話番号以外の文字列も変換してしまうリスクがあります。パターンを絞り込み、例えば「0」で始まり10桁または11桁の数字列のみにマッチするように調整することで、誤置換を防止できます。テスト用の文書でスクリプトを試すことをおすすめします。

国際電話番号への対応が必要な場合

日本以外の国番号(+81など)を含む番号を扱う場合は、パターンを拡張する必要があります。国番号を検出し、国際形式に整形するロジックを追加しましょう。ただし、すべての国番号に対応するのは複雑なため、対象範囲を明確に決めておくことが重要です。

スクリプトの権限承認が求められる場合

初回実行時には、ドキュメントの読み取り・編集権限を承認するダイアログが表示されます。このとき、スクリプトが安全であることを確認してから承認してください。組織で管理アカウントを使用している場合は、管理者の承認が必要な場合もあります。

ADVERTISEMENT

手動置換とスクリプト自動整形の比較

項目 手動置換 Apps Script自動整形
作業時間(100件の電話番号) 約30分~1時間 数秒(スクリプト実行)
見落としリスク 高い(人手による) 低い(正規表現で確実に検出)
初期設定の手間 不要 スクリプト作成に15~30分
再利用性 文書ごとに手作業 スクリプトを保存しておけば何度でも実行可能

上記の比較からもわかる通り、頻繁に電話番号を扱う業務では、最初のスクリプト作成に少し時間をかけても、長期的な効率向上が期待できます。特に、大量の文書を処理する場合や、チームで統一フォーマットを維持したい場合に有効です。

まとめ

本記事では、GoogleドキュメントのApps Scriptと正規表現を使って、本文中の電話番号を自動で統一フォーマットに整形する方法を解説しました。スクリプトを一度作成すれば、繰り返し実行できるため、文書の品質を維持しながら作業時間を大幅に短縮できます。正規表現のパターンを調整することで、電話番号以外にも郵便番号や日付など、様々な文字列の整形に応用可能です。まずはサンプルコードをベースに、自社のフォーマットに合わせてカスタマイズしてみてください。スクリプトの実行前には必ず文書のバックアップを取り、安全に試せる環境でテストすることをおすすめします。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

SPONSORED