GAS File.getUrlでファイル操作を自動化!定期実行とメール送信の実践
Google Apps Script (GAS) のFile.getUrl()メソッドは、Googleドライブ上のファイルのURLを取得するために非常に便利な関数です。この記事では、File.getUrl()を自動化処理、特に定期実行とメール送信に活用する方法を、具体的なコード例を交えて解説します。業務におけるファイル操作を効率化し、日々のルーチンワークから解放されるためのヒントを提供します。
File.getUrl()の基本
File.getUrl()は、Googleドライブ内のファイルの公開URLを取得するメソッドです。このURLを使用することで、ファイルへの直接リンクを共有したり、他のアプリケーションからファイルにアクセスしたりできます。
構文:
file.getUrl();
fileはDriveApp.getFileById()やDriveApp.getFilesByName()などで取得したFileオブジェクトです。
利用シチュエーション別の実装方法
定期実行によるファイルURLの更新通知
Googleドライブ上のファイル、例えば議事録などのURLを定期的に取得し、変更があった場合にメールで通知するスクリプトを作成します。これにより、常に最新のファイルURLを関係者に共有できます。
function checkFileUrlAndNotify() {
// ファイルIDを設定
const fileId = "YOUR_FILE_ID";
// メール送信先を設定
const recipient = "your_email@example.com";
// ファイルを取得
const file = DriveApp.getFileById(fileId);
// ファイルのURLを取得
const fileUrl = file.getUrl();
// スクリプトプロパティから前回のURLを取得
const scriptProperties = PropertiesService.getScriptProperties();
const previousUrl = scriptProperties.getProperty("fileUrl");
// URLが変更された場合、メールを送信
if (fileUrl !== previousUrl) {
const subject = "【更新通知】ファイルURLが変更されました";
const body = "ファイルのURLが更新されました。
新しいURL: " + fileUrl;
MailApp.sendEmail(recipient, subject, body);
// スクリプトプロパティに新しいURLを保存
scriptProperties.setProperty("fileUrl", fileUrl);
}
}
メール送信時のファイルURL自動添付
特定のフォルダ内のファイルを検索し、そのURLをメール本文に自動的に添付するスクリプトです。例えば、日報フォルダ内の最新の日報ファイルを検索し、そのURLを上長に送信する、といった使い方ができます。
function sendDailyReportUrl() {
// フォルダIDを設定
const folderId = "YOUR_FOLDER_ID";
// メール送信先を設定
const recipient = "your_boss@example.com";
// フォルダを取得
const folder = DriveApp.getFolderById(folderId);
// フォルダ内のファイルを検索(ここでは最新のファイル名で検索)
const files = folder.getFilesByName("日報_最新");
// ファイルが存在する場合
if (files.hasNext()) {
const file = files.next();
const fileUrl = file.getUrl();
const subject = "【日報】最新の日報URLをお知らせします";
const body = "最新の日報はこちら: " + fileUrl;
MailApp.sendEmail(recipient, subject, body);
} else {
MailApp.sendEmail(recipient, "【日報】", "本日の日報はまだ提出されていません。");
}
}
実用的なコード例
特定の条件に合致するファイルのURLをリスト化してメール送信
特定のキーワードを含むファイル名を持つファイルのURLを検索し、リスト化してメールで送信するスクリプトです。例えば、「契約書」というキーワードを含むファイルのURLをリスト化して、法務部門に送信する、といった使い方ができます。
function sendContractFileUrls() {
const folderId = "YOUR_FOLDER_ID";
const recipient = "legal@example.com";
const keyword = "契約書";
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFiles();
let fileUrls = [];
while (files.hasNext()) {
const file = files.next();
if (file.getName().includes(keyword)) {
fileUrls.push(file.getUrl());
}
}
if (fileUrls.length > 0) {
const subject = "【契約書】関連ファイルURLリスト";
let body = "契約書関連ファイルのURLは以下の通りです:
";
fileUrls.forEach(url => body += url + "
");
MailApp.sendEmail(recipient, subject, body);
} else {
MailApp.sendEmail(recipient, subject, "契約書関連ファイルは見つかりませんでした。");
}
}
よくある問題とトラブルシューティング
- URLが無効になる: ファイルの権限設定が変更された可能性があります。ファイルの共有設定を確認してください。
- ファイルが見つからない: ファイルIDが正しいか確認してください。また、ファイルが削除されていないか確認してください。
- スクリプトの実行権限: スクリプトの実行には、Googleアカウントへの権限付与が必要です。初回実行時に権限を付与してください。
カスタマイズ方法と応用例
- URLの有効期限設定: Drive API を利用することで、URLに有効期限を設定できます。
- ファイル名の自動変更: ファイルをダウンロードする際に、自動的にファイル名を変更する処理を追加できます。
- Slackへの通知: メールだけでなく、Slackなどのチャットツールへの通知も可能です。
まとめ
File.getUrl()と自動化処理を組み合わせることで、ファイル操作に関わる様々な業務を効率化できます。この記事で紹介したコード例を参考に、ぜひGASを活用して日々の業務を改善してみてください。

CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう