スプレッドシートを毎回PDFでダウンロードしてフォルダに移すのが面倒
スプレッドシートの「拡張機能」→「Apps Script」に短いコードを貼ると、ファイルをPDFにしてドライブの指定フォルダへ直接保存できます。
決まった時刻に動かしたいときは、時間主導型トリガーを1つ登録します。
- 保存先フォルダのIDを控える
- 拡張機能 → Apps Script にコードを貼る
- 1回手で実行して承認する
- 必要なとき編集画面で「実行」を押す
- 定期的にトリガーを追加して時刻を決める
- フォルダに日付入りのPDFが届けば完了
手作業だと「ファイル」→「ダウンロード」→形式を選ぶ→パソコンに保存されたファイルを保存先へ自分で移す、と毎回同じ操作が続きます(ファイルを作成、表示、ダウンロードする)。
※2026年10月時点のGoogle公式ドキュメントに基づいています。

1保存先フォルダのIDを控える
ドライブで保存先のフォルダを開き、アドレス欄に出るフォルダのID(英数字の列)をコピーします(この見つけ方は記事の補足です)。IDが違うか、自分が開けないフォルダだと、実行時にエラーになります。
出典: Class DriveApp
2コードを貼る
- PDFにしたいスプレッドシートを開く
- 「拡張機能」 → 「Apps Script」を選ぶ
- 最初から入っているコードを消して下のコードを貼る
- 1行目にフォルダIDを入れ、「保存」を押す
const FOLDER_ID = 'ここにフォルダID'; // ← 手順1でコピーしたIDに置き換える
function savePdfToDrive() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const stamp = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyyMMdd_HHmm');
const pdf = ss.getAs('application/pdf').setName(ss.getName() + '_' + stamp + '.pdf');
DriveApp.getFolderById(FOLDER_ID).createFile(pdf);
}
getAs('application/pdf') がファイルの中身をPDFに変換し、createFile がフォルダに新しいファイルとして作るので、日時を名前に入れて区別します。
出典: Class Spreadsheet / Class Folder / Class Utilities / カスタム関数のクイックスタート / Class Session / コンテナにバインドされたスクリプト
31回手で実行して承認する
編集画面の関数プルダウン リストから savePdfToDrive を選び、「実行」を押します。初回は権限を求めるダイアログが出るので、自分のアカウントで許可します。ドライブなどのデータを扱うスクリプトでは「未確認」という警告画面が出ることがあります。その場合は「詳細」→「(プロジェクト名)に移動(安全ではありません)」を選び、許可します。自分で貼ったスクリプト以外は許可しないでください。Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります。
出典: Google サービスの承認 / 会議でのセッションへの登録を作成する / Gmail と Google スプレッドシートでメールへの差し込みを作成する
4定期的に動かす
- 編集画面の左の「トリガー」を開く
- 右下の「トリガーを追加」を押す
- savePdfToDrive 用に、作成するトリガーのタイプ(時間主導型)を選択して構成する
- 「保存」を押す
指定した時刻ちょうどではなく、その後の1時間の中で動くことがあります。トリガーで失敗しても画面には出ず、Apps Scriptから失敗のまとめメールが届きます。トリガーは作った人の権限で動きます。止めるときは script.google.com の左の「マイ トリガー」で、対象の右のその他アイコンから「トリガーを削除」を選びます。
出典: インストール可能なトリガー