Googleドキュメントを業務で多数利用していると、各ファイルの共有URLを一覧で管理したい場面がよくあります。手作業でURLをコピーしてスプレッドシートにまとめるのは手間がかかり、漏れや重複が発生しやすいです。そこで役立つのが、Google Apps Script(GAS)を使って自動でURLを一覧化する方法です。本記事では、スクリプトの具体的な書き方から実行手順、よくあるトラブルまでを詳しく解説します。社内で共有URLの管理を効率化したい方は、ぜひ参考にしてください。
【要点】この記事で確認すること
- 最初に見る場所: Googleドライブ内のフォルダ構造と、共有設定の確認方法
- 切り分けの軸: 自分のGoogleアカウントの権限、スクリプトの実行環境、ファイル数による制限
- 注意点: 会社PCでGASを実行するときは管理者の許可が必要な場合がある。また、スクリプトの権限付与には慎重になること。
ADVERTISEMENT
目次
なぜ共有URLの一覧化が必要なのか
Googleドキュメントをチームで共有する際、各ファイルのURLを個別に送るのは非効率です。特にプロジェクトで数十、数百の文書を扱う場合、一覧表があれば管理が格段に楽になります。また、監査の目的で「誰にどのファイルが共有されているか」を把握する必要がある場合にも、URL一覧は役立ちます。手動でURLを集めるのはミスが発生しやすく、更新のたびに再作業が必要です。スクリプトを活用すれば、これらの作業を自動化でき、正確性と効率が向上します。
共有URLを一覧化するスクリプトの概要
スクリプトでできること
Google Apps Scriptを使うと、Googleドライブ内のファイルを検索し、ファイル名、URL、最終更新日、共有設定などをスプレッドシートに書き出すことが可能です。例えば、特定のフォルダに含まれるすべてのGoogleドキュメントの共有URLを一覧化できます。また、ファイルの種類を指定したり、更新日でフィルタリングしたりと、柔軟なカスタマイズができます。
事前に準備するもの
スクリプトを実行するには、以下の準備が必要です。
- Googleアカウント(Google Workspaceアカウントでも可)
- Googleドライブ内の対象フォルダ(またはマイドライブ全体)
- 出力先のGoogleスプレッドシート(新規作成可)
- ブラウザからGoogle Apps Scriptエディタにアクセスできる環境
Google Apps Scriptを使った具体的な手順
ここでは、実際にスクリプトを作成して実行する手順を説明します。
- スプレッドシートを開く – Googleドライブで新規スプレッドシートを作成します。このシートに一覧が出力されます。
- スクリプトエディタを起動する – メニューから「拡張機能」→「Apps Script」をクリックします。
- プロジェクト名を設定する – 左側のプロジェクト名(既定では「無題のプロジェクト」)をクリックし、「GoogleドキュメントURL一覧化」などわかりやすい名前に変更します。
- スクリプトコードを記述する – エディタに下記のコードを貼り付けます。
function listDocumentUrls() {
var folderId = 'YOUR_FOLDER_ID'; // 対象フォルダのIDに置き換え
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFilesByType(MimeType.GOOGLE_DOCS);
var sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(['ファイル名', 'URL', '最終更新日']);
while (files.hasNext()) {
var file = files.next();
var name = file.getName();
var url = file.getUrl();
var lastUpdated = file.getLastUpdated();
sheet.appendRow([name, url, lastUpdated]);
}
} - フォルダIDを設定する –
YOUR_FOLDER_IDの部分を、実際の対象フォルダのIDに書き換えます。フォルダIDは、ドライブでフォルダを開いたときのURL末尾(例: https://drive.google.com/drive/folders/XXXXX の「XXXXX」部分)です。 - スクリプトを保存する – フロッピーディスクのアイコンをクリックするか、「Ctrl + S」で保存します。
- 関数を実行する – ツールバーの「実行」ボタンをクリックします。初回は権限の確認画面が表示されるので、「権限を確認」→許可します。
- 結果を確認する – スプレッドシートにファイル名、URL、最終更新日が一覧で出力されます。各行に共有URLが表示されていることを確認します。
スクリプトコードの解説とカスタマイズ例
基本的なコードの動作
上記のコードは、指定フォルダ内のGoogleドキュメント(MimeType.GOOGLE_DOCS)を取得し、スプレッドシートに書き込むものです。whileループでファイルを1つずつ処理し、appendRowで行を追加しています。シートはあらかじめクリアしているため、実行のたびに最新の一覧になります。
カスタマイズ例
以下のようにコードを変更することで、用途に合わせた一覧化が可能です。
- 特定のファイルタイプのみ抽出する –
getFilesByType(MimeType.GOOGLE_SHEETS)に変更すればスプレッドシートのみ、GOOGLE_SLIDESにすればスライドのみになります。 - サブフォルダも含める – 再帰的にフォルダを探索する関数を追加する必要があります。例として
function listFilesRecursive(folder)を作成し、folder.getFolders() で子フォルダをループします。 - 共有設定の情報も取得する –
file.getSharingAccess()やfile.getSharingPermission()を使うと、共有範囲(Anyone, Domain, Private など)や権限(View, Comment, Edit)を取得できます。
失敗パターンと対処法
権限エラーが発生する
初回実行時に表示される権限要求画面で「このアプリは確認されていません」と表示されることがあります。これはGoogleの審査を受けていないスクリプトに共通する警告です。自分のアカウントで使用するだけなら「詳細」→「安全ではないページに移動」から許可しても問題ありませんが、会社のアカウントでは管理者が制限している可能性があります。その場合は管理者に問い合わせてください。
実行時間制限に達する
GASには1回の実行で6分の制限があります(コンシューマアカウントの場合)。対象ファイルが数千を超えるとタイムアウトする可能性があります。その場合は、フォルダを分割して実行するか、スクリプトを複数回に分けて処理するなどの対応が必要です。
ファイル数が多いと途中で止まる
実行中にエラーが出ずとも、結果が不完全な場合は、1回の実行で取得できるファイル数に上限がある可能性があります。DriveAppのイテレータは一度に最大250ファイル?まで取得できるとされていますが、実際には制限は緩やかです。確実を期すなら、ページング処理を実装するか、queryパラメータで取得範囲を絞り込みます。
スクリプト活用と管理設定の比較
共有URLの一覧化には、手動収集やサードパーティーツールを使う方法もあります。以下の表で比較します。
| 方法 | メリット | デメリット |
|---|---|---|
| 手動でURLをコピー | 特別なツール不要 | 時間がかかる、ヒューマンエラー |
| サードパーティーツール(例:CloudFuze, SysTools) | GUIで簡単、大量ファイル対応 | コストがかかる、セキュリティリスク |
| Google Apps Script | 無料、カスタマイズ自由、Google環境内で完結 | コードの知識が必要、制限あり |
GASは初期学習コストはあるものの、一度構築すれば繰り返し使え、カスタマイズも容易です。会社のポリシーでサードパーティーツールが禁止されている場合にも有効な選択肢です。
管理者へ確認する情報
社内でGASを使う際は、管理者に以下の点を確認しておくことをおすすめします。
- Google Workspaceの管理コンソールで「Google Apps Script の実行」が許可されているか
- 未確認のアプリを許可するポリシーになっていないか
- スクリプトがアクセスするデータ範囲(ドライブ内の全ファイルなど)が規約に違反しないか
- 出力先のスプレッドシートを共有する場合は、適切な閲覧権限を設定すること
よくある質問(FAQ)
Q1. 他のGoogleフォーマット(スプレッドシート、スライド)でも同じように一覧化できますか?
A. はい。MimeTypeの指定を変更するだけで取得できます。詳しくはカスタマイズ例を参照してください。
Q2. スクリプトを定期的に自動実行したいのですが?
A. GASのトリガー機能を使います。スクリプトエディタの左側の時計アイコンから、時間主導型のトリガー(例:1時間ごと、毎日など)を設定できます。
Q3. 共有URLの一覧にはアクセス権限の情報も含めたいです。
A. コード内で file.getSharingAccess() と file.getSharingPermission() を呼び出し、列に追加してください。
Q4. エラーが発生して実行できません。
A. まずはエラーメッセージを確認してください。よくあるのはフォルダIDの間違いや権限不足です。スクリプトエディタの「表示」→「ログ」で詳細を確認できます。
まとめ
Googleドキュメントの共有URLを一覧化するには、Google Apps Scriptを使う方法が最も効率的でカスタマイズ性に優れています。スクリプトの作成は若干の知識が必要ですが、この記事で紹介したコードをコピーしてフォルダIDを変えるだけで、すぐに利用を開始できます。大量ファイルの場合は実行制限に注意し、必要に応じて分割やトリガー設定を行ってください。社内で利用する際は、事前に管理者の許可を得て、安全に運用しましょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
