ADVERTISEMENT

【Googleドキュメント】Apps ScriptでDocsの統計情報取得!文字数・段落数の集計

【Googleドキュメント】Apps ScriptでDocsの統計情報取得!文字数・段落数の集計
🛡️ 超解決

Googleドキュメントで作成した文書の文字数や段落数を手動で数えるのは、とても手間がかかります。特に長文のレポートや複数のドキュメントを扱う場合、正確な集計は難しい作業です。そこで役立つのが、Apps ScriptというGoogleのスクリプト機能です。この記事では、Apps Scriptを使ってドキュメントの統計情報を自動で取得する方法を、詳しく解説します。

【要点】Apps Scriptで文字数・段落数を自動集計する手順

  • スクリプトエディタの開き方: Googleドキュメントの「拡張機能」メニューからApps Scriptエディタを開きます。
  • コードの記述方法: Document Serviceを使って本文テキストを取得し、文字数と段落数を計算する関数を書きます。
  • スクリプトの実行と確認: 関数を実行すると、ログに統計情報が出力されるので、それを確認します。

ADVERTISEMENT

Apps Scriptでドキュメント統計を取得する仕組み

Apps Scriptは、Googleの各種サービスを操作するためのスクリプト言語です。JavaScriptをベースとしており、Googleドキュメント、スプレッドシート、Gmailなどと連携できます。特にドキュメントの内容を扱うには、Document Service(DocumentApp)を使用します。このサービスを使うと、ドキュメントの本文や段落、表などの要素にアクセスできます。

文字数や段落数を取得するには、ドキュメント全体のテキストを取得し、その長さを調べます。段落数は、段落要素の数をカウントすることで得られます。また、特定の条件でフィルタリングすることも可能です。事前に必要な準備は、スクリプトエディタを開くことだけです。Googleアカウントがあれば、特別な設定は不要です。

Apps Scriptで文字数・段落数を取得する手順

ここでは、実際の手順を順を追って説明します。まずはスクリプトエディタを開き、コードを記述して実行するまでの流れです。

  1. スクリプトエディタを開く
    Googleドキュメントを開き、メニューバーから「拡張機能」→「Apps Script」をクリックします。新しいタブでスクリプトエディタが開きます。
  2. プロジェクトに名前を付ける
    スクリプトエディタの左上にある「無題のプロジェクト」をクリックし、わかりやすい名前(例:「文書統計取得」)に変更します。
  3. コードを記述する
    エディタに以下のコードを入力します。
    function getDocStats() {
      var doc = DocumentApp.getActiveDocument();
      var body = doc.getBody();
      var text = body.getText();
      var charCount = text.length;
      var paragraphs = body.getParagraphs();
      var paraCount = paragraphs.length;
      Logger.log('文字数: ' + charCount);
      Logger.log('段落数: ' + paraCount);
    }
  4. スクリプトを保存する
    Ctrl+S(Macの場合はCmd+S)を押すか、フロッピーディスクのアイコンをクリックして保存します。
  5. 関数を実行する
    ツールバーの関数選択ドロップダウンから「getDocStats」を選び、「実行」ボタンをクリックします。初回は権限の確認画面が表示されるので、「許可」をクリックします。
  6. ログを確認する
    実行後、メニューバーから「表示」→「ログ」をクリックすると、出力された文字数と段落数が確認できます。

以上の手順で、アクティブなドキュメントの文字数と段落数が取得できます。コード内の「getActiveDocument()」は現在開いているドキュメントを対象とします。別のドキュメントを指定したい場合は、「openById()」や「openByUrl()」を使用します。

スクリプト実行時の注意点と応用

スクリプトの実行権限について

初回実行時には、スクリプトがドキュメントにアクセスするための許可を求められます。これはセキュリティのためであり、自分のアカウントで問題なければ許可してください。許可後は同じプロジェクト内で再度の許可は不要です。ただし、スクリプトを別のユーザーと共有する場合は、そのユーザーも個別に許可が必要です。

大量の段落がある場合のパフォーマンス

段落数が多いドキュメントでは、スクリプトの実行に時間がかかることがあります。特に数百段落を超える場合は、処理を最適化するために「getParagraphs()」の代わりに「getNumChildren()」を使う方法も検討できます。ただし、通常の文書であれば問題なく動作します。

特定の条件でフィルタリングする

文字数や段落数だけでなく、特定の単語を含む段落だけをカウントしたい場合もあります。その場合は、段落をループで回してテキストをチェックする処理を追加します。例えば、以下のように記述します。

function countSpecificWord(word) {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var paragraphs = body.getParagraphs();
  var count = 0;
  for (var i = 0; i < paragraphs.length; i++) {
    if (paragraphs[i].getText().indexOf(word) != -1) {
      count++;
    }
  }
  Logger.log('「' + word + '」を含む段落数: ' + count);
}

トリガーを使って自動実行する

毎回手動で実行するのが面倒であれば、トリガーを設定して自動化できます。スクリプトエディタの左側にある「トリガー」アイコンをクリックし、「トリガーを追加」から時間ベースのトリガー(例:1時間ごと)を設定します。ただし、過度な頻度は推奨されません。

ADVERTISEMENT

手動集計とApps Script集計の比較

比較項目 手動集計 Apps Script集計
所要時間 数分〜数十分(文書量による) 数秒
正確性 人為ミスの可能性あり 機械的に計算、正確
応用可能性 他の集計は別途手作業 コード修正で様々な統計に対応
学習コスト 不要 簡単なスクリプト知識が必要

まとめ

この記事では、Apps Scriptを使ってGoogleドキュメントの文字数と段落数を自動で取得する方法を解説しました。手動では面倒な集計も、数行のコードで瞬時に完了します。スクリプトを応用すれば、特定の単語の出現回数や、段落ごとの文字数分布など、さまざまな統計情報を取得できます。まずは今回紹介した基本的なコードを試してみて、自分のニーズに合わせてカスタマイズしてみてください。スクリプトエディタの「実行」ボタンを押すだけで、文書の統計情報が手に入ります。


ADVERTISEMENT

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

超解決 第一編集部

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