◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り7日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り7日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/Workspace 連携
◧ Workspace 連携/2026-10-15初級

Gemini の回答を日付つきの PDF で残す — Docs に書き出して、Apps Script で固定する

Gemini の「Share & export」に PDF はありません。Docs に書き出し、Apps Script で日付つき PDF にして同じフォルダへ固定する手順と、getAs の命名で起きる落とし穴をまとめました。

Gemini91Google Docs3Apps Script13PDF3Google Drive5

ストアの掲載文を Gemini と詰めて、ようやく納得のいく一案ができたとします。取引先に見せる前に、「この時点の案」として手元に残しておきたいところです。ところが回答の下の「Share & export」を開くと、並んでいるのは Docs、Gmail の下書き、表なら Sheets、コードなら Colab や Replit です。PDF の文字はありません。

Zenn で、ChatGPT・Claude・Gemini の「会話を資料として残す機能」を公式ヘルプから比べた記事を読みました。そこでは、PDF 化だけが 3 社とも見当たらないと整理されています。個人開発で提出物の下書きを AI と詰めていると、同じところに行き当たる方は少なくないのかもしれません。

そこで、公式のヘルプとリファレンスを読み直し、Docs 経由で PDF を固定する小さな仕組みを組みました。先にお伝えしておくと、Apps Script の部分は手元で組み立てた論理(名前の付け方とフォルダ作成の流れ)を模擬環境で確かめた段階で、実際の Google アカウントでの実行結果ではありません。その線引きも本文の最後に書き残します。

公式ヘルプで確認できたこと(2026-10-15 時点)

Gemini アプリのヘルプには、関係する記述が 2 か所あります。

「回答のエクスポート」のページでは、回答の下の Share & export から Docs への書き出し、Gmail の下書き作成、表の Sheets への保存、コードの Colab・Replit への書き出しが案内されています。Docs への書き出しは「Google ドライブに新しい文書を保存する」動作です。

一方、「Gemini アプリを使う」のページの「会話からファイルを生成する」には、依頼の仕方(「これを doc にして」のような指示)と、対応形式の一覧が載っています。その一覧には Docs・Sheets のほか .pdf、.docx、.xlsx、.csv などが含まれています。

つまり、メニューに PDF が無いことと、Gemini が PDF を作れないことは別の話です。Zenn の整理は「Share & export の導線」について言えば当たっており、そこに「頼んで作らせる」道が加わる、というのが現時点の見取り図です。

PDF にする理由を先に決める

道具を選ぶ前に、何のための PDF かを一行で言えると迷いません。私が考える理由は 3 つです。

  • 渡した時点の内容を固定したい。Docs のリンクで渡すと、相手は常に最新の同じ文書を見るため、後から手を入れた箇所も届いてしまいます
  • あとで「あの日の案」に戻れるようにしたい。日付が名前に入っていれば、フォルダを開くだけで時系列が分かります
  • 共有の範囲を文書から切り離したい。PDF は別のファイルなので、元の Docs の共有設定を広げずに渡せます

3 つのどれにも当てはまらないなら、Docs のまま使うのが一番手間の少ない選択です。

3 つの道を並べる

道手間向く場面注意
Gemini に PDF で作らせる依頼文に一言足すだけです一度きりで、見た目は任せてよいとき日付や保存先の名前は自分で付け直すことになります
Docs に書き出し、ファイル → ダウンロード → PDFクリック数回です書き出した後に自分で手直しを入れたいとき保存先がダウンロードフォルダになり、元の文書と離れます
Docs に書き出し、Apps Script で固定最初の設定が 5 分ほどです同じ作業を繰り返し、履歴を残したいときDrive への権限承認が必要です

1 回きりなら上の 2 つで十分です。3 つ目は、毎週のように「提案書の下書きを Gemini と作って、相手に送る版を残す」ような繰り返しのある方に向いています。

Docs に書き出してから、日付つきで固定する

Gemini の回答を Share & export から Docs に書き出し、その文書を開いて、拡張機能 → Apps Script を選びます。次のコードを貼って保存すると、Docs のメニューに「PDF で固定」が増えます。

先に解こうとしている問題は 2 つです。PDF を元の文書と同じ場所に集めること、そして名前に日時を入れて上書きや取り違えを避けることです。

/**
 * Gemini から Docs に書き出した文書を、日付つきの PDF にして
 * 同じフォルダの「PDF」フォルダへ置く(Docs 側のメニューから実行)。
 */
const PDF_FOLDER_NAME = 'PDF';
 
function onOpen() {
  DocumentApp.getUi()
    .createMenu('PDF で固定')
    .addItem('日付つき PDF を作る', 'exportDocAsDatedPdf')
    .addToUi();
}
 
function exportDocAsDatedPdf() {
  const doc = DocumentApp.getActiveDocument();
  const file = DriveApp.getFileById(doc.getId());
  const stamp = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd_HHmm');
 
  // getAs() が付ける名前は使わず、最後に自分で名前を決め直す
  const blob = file.getAs(MimeType.PDF).setName(buildPdfName(doc.getName(), stamp));
 
  const folder = getOrCreateFolder_(file, PDF_FOLDER_NAME);
  const pdf = folder.createFile(blob);
 
  const ui = DocumentApp.getUi();
  ui.alert('PDF を作りました', folder.getName() + ' / ' + pdf.getName(), ui.ButtonSet.OK);
}
 
function buildPdfName(docTitle, stamp) {
  const base = String(docTitle).replace(/[\\/:*?"<>|]/g, '_').trim() || 'untitled';
  return base + '_' + stamp + '.pdf';
}
 
function getOrCreateFolder_(file, name) {
  const parents = file.getParents();
  const parent = parents.hasNext() ? parents.next() : DriveApp.getRootFolder();
  const found = parent.getFoldersByName(name);
  return found.hasNext() ? found.next() : parent.createFolder(name);
}

なぜこう書くのかを順に説明します。

日付は yyyy-MM-dd_HHmm にしました。ファイル名を並べ替えたとき、そのまま時系列になるからです。分まで入れているのは、同じ日に何度か案を直して固定する場面があるためです。ただし同じ分に 2 回実行すると同名のファイルが 2 つできます。Drive は同名を許すので、エラーにはなりません。

フォルダ名の末尾に _ が付く getOrCreateFolder_ は、Apps Script の慣習で「メニューや実行一覧に出さない内部関数」を表します。PDF フォルダが無ければ作り、あれば再利用するので、2 回目以降も同じ場所に溜まります。

buildPdfName は、ファイル名に使えない文字を _ に置き換え、題名が空でも untitled になるようにしています。

名前で一度つまずきます

最初に思いつく形は、getAs(MimeType.PDF) が返す Blob をそのまま createFile に渡す書き方です。ところが公式リファレンスの getAs の説明に、気をつけたい一文があります。

最後のピリオド以降は既存の拡張子とみなして置き換えます。たとえば "ShoppingList.12.25.2014" は "ShoppingList.12.25.pdf" になります。

日付を 2026.10.15 のようにピリオド区切りで書く習慣があると、題名が「2026.10.15 議事録」のとき、リファレンスの規則どおりなら「2026.10.pdf」になります。日が消え、題名も消え、同じ月の別の文書と同名になりかねません。

対策は 2 つあります。名前に日付を入れるなら - か _ で区切ること。そして上のコードのように、getAs のあとで setName を呼び、最終的な名前を自分で決め直すことです。前者だけでも防げますが、後者を入れておくと、題名に付いたピリオドが残っていても影響を受けません。

動かす前に確認しておくこと

初回の実行では、Google から承認画面が出ます。このコードは Drive のファイルを読み、フォルダへ書き込むため、公式リファレンスが示す権限は https://www.googleapis.com/auth/drive です。読み取りだけの権限では createFile が通りません。

自分の Drive の自分の文書に付けるスクリプトなら、受け入れる範囲は自分で決められます。ただし、このスクリプトが入った文書をそのまま他の人に共有・コピーすると、相手の画面にも同じ承認が求められます。権限を絞る考え方は、Apps Script × Gemini 自動化の権限を最小に保つ — 明示スコープ設計とスコープ肥大の検知に詳しく書いています。

もう一つ、PDF フォルダは元の文書と同じ親フォルダの下に作られます。親フォルダが他の人と共有されている場合、Drive では配下のファイルにも共有が及びます。固定した PDF を「渡す前の下書き」として置くつもりなら、最初に親フォルダの共有状態を見ておくと安心です。Gemini が Drive のどこまで読むかという別の角度の話は、Drive を Gemini に見せたくないなら、共有を解除する前に試せる設定がありますが参考になります。

確認できたことと、できていないこと

ここまで書いたことを、確かめた範囲で分けておきます。

確かめたのは、公式ヘルプの 2 ページ(回答のエクスポート、ファイルの生成)と、Apps Script の File.getAs・Folder.createFile のリファレンスの記述です。また、上のコードを Node.js 上で Apps Script のサービスを模した部品に載せ、フォルダが 1 つだけ作られること、PDF が同じフォルダに溜まること、記号を含む題名と空の題名が想定の名前になることを確かめました。

確かめていないのは、実際の Google アカウントでの実行です。承認画面の文言、書き出した Docs の題名、PDF の見た目(表や画像の崩れ)は、お手元で一度ご覧ください。初回は、捨ててよい文書で試すことをおすすめします。

私の線引き

私は、相手に渡す版は、Docs のリンクではなく、日付の入った別ファイルにすることにしています。リンクは便利ですが、渡した瞬間から相手の画面は私の手直しに追随します。PDF は不便な分だけ、「あの日の案」が動かなくなります。

使い始めるなら、まず Docs に書き出した文書でメニューを 1 回押し、PDF フォルダに何ができたかを見てみてください。そのあと必要なら、名前の形式を自分の整理に合わせて直せば十分です。

関連して、Sheets から呼ぶ Gemini の使用量を台帳で追う工夫は、Sheets から呼ぶ Gemini の月額を、年末の値上げ日をまたいで Apps Script で割り出すにまとめています。

シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

◧ Workspace 連携2026-08-27
Meet のメモ機能が対面の打ち合わせに対応しました。先に決めるのは Drive の受け皿です
Google Meet のメモ機能がホーム画面から起動でき、対面の打ち合わせも対象になりました。生成されたドキュメントが Drive に散らばる前に受け皿を決め、決定事項だけを Apps Script で台帳へ落とす手順をまとめます。
◧ Workspace 連携2026-09-17
Gem の共有が止まる場所は三つあります。相手の一覧に出ないときに見る順番
共有した Gem が相手に届かないとき、原因は Gem 本体・管理コンソール・ドライブのどこかにあります。それぞれで何が止まり、誰なら直せるのかを、確かめる順番とともに整理しました。
◧ Workspace 連携2026-09-01
Gemini の新機能が Workspace に出てこないとき、待ちと不具合を切り分ける順序
告知された Gemini の新機能が自分の Workspace に現れないとき、それが段階展開の途中なのか設定の問題なのかを、リリーストラックと展開ペースから機械的に判定する手順と Apps Script の台帳をまとめました。