「また印刷設定が消えてる…」そんな経験、ありませんか?Googleスプレッドシートで丁寧に余白・スケール・印刷範囲を設定したのに、次に開いたら全部リセットされている。これ、実はバグでも故障でもありません。Googleが意図的にそう設計しているんです。でも、だからといって毎回イチから設定し直すなんて時間の無駄ですよね。
この記事では、なぜGoogleスプレッドシートの印刷設定が保存されないのかという根本原因から、2026年現在に使える具体的な保存・固定テクニックまで、初心者でもすぐ実践できるように丁寧に解説します。さらに、上級者向けのApps Scriptを使った自動化の方法まで網羅しているので、あなたのレベルに合った解決策が必ずここにあります。
- Googleスプレッドシートが印刷設定を保存しない理由と、その正しい回避策
- 印刷範囲・スケール・余白・タイトル行をきちんと保持させる実践手順
- Apps ScriptとPDFアドオンを使って印刷設定を半永久的に固定する上級テクニック
- なぜGoogleスプレッドシートの印刷設定は保存されないの?
- 印刷設定の「消える問題」を防ぐ!正しい手順をマスターしよう
- Excelとの決定的な違い!印刷設定の「保存」に対する考え方
- 印刷設定を「実質的に保存する」3つの裏技テクニック
- PDFに保存するときの設定をきれいに保つコツ
- 情シス10年以上の経験で見えてきた!現場で本当に詰まる「印刷あるある」と解決策
- URLパラメータを使った「印刷設定の完全固定」という上級テクニック
- 実際に業務で使える!複数の便利なGASプログラムコード集
- 知らないと損する!Googleスプレッドシート印刷の隠れた便利機能
- Googleスプレッドシートの印刷設定が「複数人で共有すると崩れる」本当の理由
- ぶっちゃけこうした方がいい!
- Googleスプレッドシートの印刷設定が保存されない問題に関するよくある質問
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめGoogleスプレッドシートの印刷設定「保存されない問題」を制する者が時間を制す!
なぜGoogleスプレッドシートの印刷設定は保存されないの?
まずここを押さえておかないと、どんな対策をしても「なんとなくうまくいった・いかない」になってしまいます。
Googleスプレッドシートは、クラウドネイティブなリアルタイム共同編集ツールとして設計されています。つまり「印刷」はあくまで副次的な機能であり、主役はデータのリアルタイム共有と編集です。これはMicrosoftExcelとの根本的な設計思想の違いです。Excelは長年にわたって「紙に出力するためのツール」としての歴史を持ち、印刷設定はファイル本体に保存される仕組みになっています。
一方、GoogleスプレッドシートはWebブラウザ上で動くクラウドサービスです。印刷設定はファイルではなくセッション(ブラウザを開いている間)ごとの一時的な指示として扱われます。そのため、ブラウザを閉じたり別のデバイスでファイルを開いたりすると、設定がリセットされます。これはバグではなく、Googleが意図した仕様です。
この事実を理解した上で「じゃあどうすればいいか?」という話に進みましょう。答えは大きく3つのアプローチに分かれます。印刷前にセル範囲を選択してから設定する方法、テンプレートシートとして設定を保存しておく方法、そしてApps Scriptで自動化する方法です。
印刷設定の「消える問題」を防ぐ!正しい手順をマスターしよう
まず印刷したい範囲をあらかじめ選択するのが大原則!
Googleスプレッドシートで最も多いミスは、何も選択しない状態で印刷設定を開いてしまうことです。そうするとシート全体が対象になり、余計なデータやメモが印刷範囲に含まれてしまいます。
正しい手順はシンプルです。まず印刷したいセル範囲をドラッグで選択します。たとえばA1からI50までが表なら、そこをドラッグしてから
Ctrl+P
(MacはCmd+P)を押すか、ツールバーの印刷アイコンをクリックします。印刷設定画面の「印刷」という項目が「現在のシート」になっているはずなので、ここを「選択中のセル」に切り替えます。これだけで、余計なL列のメモなど不要な範囲を印刷から除外できます。
次に「スケール」の設定を確認します。表が横に広い場合は「標準(100%)」のままだと2ページにはみ出すことがあります。そこで「幅に合わせる」を選ぶと、用紙の横幅に自動でフィットするように縮小倍率が設定されます。この2つを組み合わせるだけで、ほとんどの「はみ出し問題」は解決します。
縦に長い表のタイトル行を毎ページに繰り返す方法
100行・200行ある大きな表を印刷すると、2ページ目以降にタイトル行がなくて「これ何の列だっけ?」となりがちです。Googleスプレッドシートにはこれを解決する「固定行の繰り返し」機能があります。
ただし、この機能を使うにはひとつ準備が必要です。印刷設定を開く前に、シート上でタイトル行を「固定」しておかなければなりません。これをやっていないと、印刷設定の「ヘッダーとフッター」内にある「固定行を繰り返す」のチェックボックスがグレーアウトして選択できません。
固定行の設定方法は簡単です。シート上で1行目の行番号にマウスポインターを合わせ、ポインターが手の形になった位置から下方向にドラッグします。もしくはメニューの「表示」→「固定」→「1行」を選択してもOKです。1行目の下に太いグレーの線が表示されれば固定完了です。この状態で
Ctrl+P
を押すと、「固定行を繰り返す」のチェックボックスが有効になります。チェックを入れれば、2ページ目以降にも自動でタイトル行が挿入されます。
余白とページの向きで印刷品質をさらに上げよう
印刷設定の中でよく見落とされるのが「余白」と「ページの向き」の設定です。Googleスプレッドシートのデフォルト余白は「標準」ですが、A4用紙にできるだけ大きく印刷したいなら「最小」や「カスタム数値」で余白を詰めるのが効果的です。逆に上司への提出資料や重要書類の場合は、余白を広めにとって読みやすくするのも大切なマナーです。
ページの向きについては、横長の表には「横向き(ランドスケープ)」、縦長の表や一般的な文書には「縦向き(ポートレート)」が基本です。設定後は必ずプレビューで確認し、文字サイズが小さすぎないか、見切れている列がないかをチェックしましょう。プレビューで確認するひと手間が、印刷失敗による紙の無駄遣いを防いでくれます。
Excelとの決定的な違い!印刷設定の「保存」に対する考え方
Excelを長年使ってきた方ほど、GoogleスプレッドシートのExcelと異なる印刷仕様に戸惑うことが多いです。Excelでは「ページレイアウト」タブ→「印刷範囲の設定」で範囲を固定でき、それがファイルに保存されます。「改ページプレビュー」から青い線をドラッグして範囲を調整し、ファイルを閉じても次回開いたときにその設定が残ります。
Googleスプレッドシートではこの「印刷範囲をファイルに保存する」機能が存在しません。印刷設定はセッションごとにリセットされます。これはExcelユーザーにとって大きな落とし穴です。「カスタムの改ページを設定」でドラッグしても、次回開いたときには設定が消えます。ここは誤解のないように覚えておきましょう。
| 比較項目 | Googleスプレッドシート | MicrosoftExcel |
|---|---|---|
| 印刷範囲の保存 | 保存されない(セッション限り) | ファイルに保存される |
| 改ページの保存 | 保存されない | ファイルに保存される |
| タイトル行の繰り返し | 固定行を事前設定すれば可能 | 「印刷タイトル」機能で設定可能 |
| スケール設定の保存 | 保存されない | ファイルに保存される |
| PDFへの保存 | ブラウザ経由またはドライブに保存 | 名前をつけて保存から直接PDF |
上の表を見るとわかるように、GoogleスプレッドシートはExcelと比べて印刷設定の「永続化」において機能が少ないのが実情です。ただし、これを上手に補う方法があります。次のセクションで紹介するテンプレートシート活用法と、Apps Scriptを使った自動化がその答えです。
印刷設定を「実質的に保存する」3つの裏技テクニック
テンプレートシートを作って複製する方法(初心者向け)
最もシンプルで確実な方法が「印刷用マスターテンプレートシート」を作っておくことです。手順を説明します。まず、スプレッドシートに新しいシートを追加し、「印刷テンプレート」や「PrintTemplate」などわかりやすい名前をつけます。このシートに印刷したいデータの見出し行やレイアウトを作り込み、
Ctrl+P
で印刷設定を開いて用紙サイズ・余白・スケール・印刷方向・固定行の繰り返しなどをすべて理想通りに設定します。
この「テンプレートシート」が完成したら、新しいレポートを作るたびにシートタブを右クリックして「コピーを作成」を選択します。コピーされたシートには印刷プレビュー時に設定したレイアウトが再現されやすい状態になります。完全に設定が引き継がれるわけではありませんが、見出し行の固定・スケール設定のベースなど多くの要素が維持されるため、毎回ゼロから設定し直すよりずっと効率的です。
名前付き範囲で印刷エリアを素早く呼び出す方法(中級者向け)
毎回同じ範囲を選択するのが面倒な方には「名前付き範囲」を使う方法がおすすめです。まず印刷したい範囲(例A1:I50)をドラッグで選択し、メニューの「データ」→「名前付き範囲」を開きます。サイドパネルで範囲に名前をつけます。このとき
PRINT_RANGE
のように英数字でわかりやすい名前にしておくと後で探しやすいです。
次回印刷するときは「データ」→「名前付き範囲」を開き、登録してある
PRINT_RANGE
をクリックするだけで自動的にその範囲が選択されます。あとは
Ctrl+P
→「選択中のセル」を選べば一発で正しい印刷範囲が設定されます。毎回ドラッグして範囲を選び直す手間が省けるので、日常的に同じシートを印刷する業務では特に効果的な方法です。
Apps Scriptで「印刷用シート自動生成」を実装する方法(上級者向け)
エンジニアや仕事でGoogleスプレッドシートを頻繁に使う方には、Google Apps Script(GAS)を使った自動化が最強の解決策になります。ただし重要な前提として、Apps ScriptはGoogleスプレッドシートの印刷設定(余白・スケール値など)を直接APIで変更・保存する機能を持っていません。あくまで「テンプレートシートを複製する」作業を自動化するのが現実的な使い方です。
手順としては、まずメニューの「拡張機能」→「Apps Script」を開きます。デフォルトのコードをすべて削除して、以下のスクリプトを貼り付けます。
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('印刷ツール')
.addItem('テンプレートから新しいレポートを作成', 'duplicateTemplateSheet')
.addToUi();
}
function duplicateTemplateSheet() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const templateSheetName = '印刷テンプレート';
const templateSheet = ss.getSheetByName(templateSheetName);
if (!templateSheet) {
SpreadsheetApp.getUi().alert('「' + templateSheetName + '」シートが見つかりません。');
return;
}
const newSheet = templateSheet.copyTo(ss);
ss.setActiveSheet(newSheet);
const ui = SpreadsheetApp.getUi();
const response = ui.prompt('新しいレポート名を入力してください', ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() == ui.Button.OK) {
newSheet.setName(response.getResponseText());
}
}
スクリプトを保存してスプレッドシートを更新すると、メニューバーに「印刷ツール」という新しい項目が追加されます。「テンプレートから新しいレポートを作成」をクリックするだけで、印刷用のレイアウトが整ったシートが自動生成されます。チームで共有しているスプレッドシートや、毎週・毎月レポートを作成する業務に特に便利な機能です。
PDFに保存するときの設定をきれいに保つコツ
Googleスプレッドシートをそのまま共有するのではなく、PDFとして保存・配布したい場面は多いですよね。会議資料、月次報告書、請求書など、PDFは紙に印刷するのと同じくらい重要な出力形式です。
PDFに保存する方法は2通りあります。ひとつは「ファイル」→「ダウンロード」→「PDF(.pdf)」を選択する方法です。もうひとつは「ファイル」→「印刷」または
Ctrl+P
を押して印刷設定画面を開き、「次へ」をクリックした後の画面で「送信先」を「PDFに保存」に変更する方法です。どちらも同じ印刷設定画面を経由するため、印刷と同じ手順で設定が反映されます。
PDFをきれいに出力するための重要なポイントが「スケール」の選択です。A4縦1枚に収めたいのに表が2列だけ余って2ページになってしまうことはよくあります。そういうときは「スケール」→「幅に合わせる」を選べば、横幅が自動的にページ内に収まるよう縮小されます。さらにページ数が多い長い表は「ページに合わせる」を使うと全体が1ページに収まりますが、文字が小さくなりすぎる場合があるので必ずプレビューで確認してください。
なお、PDFにはヘッダーやフッターに会社名・日付・ページ番号などを入れることもできます。印刷設定の「ヘッダーとフッター」から「ページ番号」「シート名」「更新日時」などのオプションを選択できるので、正式な書類を作成する際に活用してみてください。
情シス10年以上の経験で見えてきた!現場で本当に詰まる「印刷あるある」と解決策
「印刷設定が保存されない」という問題は、実はGoogleスプレッドシートの仕様の話だけでは終わりません。情報システム部門で10年以上、数百人規模の組織のGoogleWorkspace運用をしてきた経験から言うと、現場で一番詰まるのは「設定がわからない」より「なんか知らんけど思ったとおりに印刷されない」というケースです。以下は実際に何度も体験した「あるある問題」とその解決策です。
【あるある1】プレビューではきれいなのに印刷すると1列だけ2ページ目に飛ぶ
これは情シスの窓口に一番多く寄せられる相談です。印刷プレビューでは1ページに収まっているように見えるのに、実際に印刷するとI列だけがポツンと2枚目に出てくる。原因はほぼ100%、ブラウザの印刷設定(システム側)とGoogleスプレッドシートの印刷設定(アプリ側)が混在していることです。
Googleスプレッドシートの印刷設定で「幅に合わせる」を選んでいても、ブラウザの印刷ダイアログで「倍率カスタム90%」などになっていると、両方の縮小が重なって実際の出力が崩れます。
解決策はシンプルです。Googleスプレッドシートの印刷設定(「次へ」を押す前の画面)で「幅に合わせる」を設定し、「次へ」を押した後のブラウザ印刷ダイアログでは「倍率デフォルト」または「100%」に必ず戻すことです。ブラウザ側で余計な縮小をかけないようにするのが鉄則です。この組み合わせで9割の「1列はみ出し問題」は解決します。
【あるある2】共有シートを自分が印刷すると設定が変になる
チームで共有しているスプレッドシートを各自が印刷しようとしたとき、「自分が印刷すると崩れるけど他の人は大丈夫」という問題が起きることがあります。これはGoogleスプレッドシートの印刷設定がユーザーのブラウザセッションに紐付いているためです。他のメンバーが以前設定した印刷設定は、あなたのブラウザには引き継がれません。
この問題への実践的な解答は「印刷用URLをブラウザのブックマークに保存する」という方法です。実はGoogleスプレッドシートは、印刷設定をURLのパラメータとして保持できます。次のようなURL形式で印刷設定を丸ごとブックマーク化できます。
https://docs.google.com/spreadsheets/d/【スプレッドシートID】/export?format=pdf&size=6&portrait=true&fitw=true&gridlines=false&fzr=true&gid=【シートID】&r1=0&c1=0&r2=49&c2=8&top_margin=0.5&bottom_margin=0.5&left_margin=0.5&right_margin=0.5
このURLのパラメータの意味を解説します。
size=6
はA4用紙、
portrait=true
は縦向き、
fitw=true
は幅に合わせるスケール、
gridlines=false
はグリッド線なし、
fzr=true
は固定行の繰り返し、
r1=0&c1=0&r2=49&c2=8
は印刷範囲(0始まりの行・列番号)です。このURLにアクセスするだけで、毎回同じ設定でPDF出力ダイアログが開きます。チームで共有するなら、このURLをスプレッドシート内のセルにHYPERLINK関数で埋め込んでおくと便利です。
【あるある3】「印刷するたびにヘッダーが消える」問題
「固定行を繰り返す」を設定したはずなのに、次にファイルを開いて印刷するとチェックが外れている。この問題は、印刷設定を完了する前にシートを切り替えたり、ブラウザの「戻る」ボタンを押したりするとチェック状態がリセットされることで発生します。
対策として有効なのは、印刷する前に必ず以下の3ステップを順番通りに行うことです。まずシート上で固定行が設定されているか確認(行番号下に太いグレー線があるか)、次にCtrl+Pで印刷設定を開き、ヘッダーとフッターを開いて「固定行を繰り返す」にチェックを入れる、そして設定を確認してから「次へ」を押す。この順番を崩さないことが重要です。
URLパラメータを使った「印刷設定の完全固定」という上級テクニック
前のセクションで少し触れましたが、これは他のどの日本語記事でもほとんど解説されていない非常に強力な方法です。GoogleスプレッドシートのPDFエクスポートURLには、印刷設定をすべてパラメータとして組み込めます。このURLを使えば、GUIの印刷設定画面を一切開かずに、毎回まったく同じ設定でPDF出力できます。
主要なパラメータをまとめます。
| パラメータ | 意味 | 設定値の例 |
|---|---|---|
format=pdf
|
出力形式 | 固定値 |
size
|
用紙サイズ | 6=A4、7=A3、0=レター |
portrait
|
ページの向き | true=縦、false=横 |
scale
|
スケール | 1=100%、2=幅に合わせる、3=高さに合わせる、4=ページに合わせる |
fitw
|
幅に合わせる(scale=2の代替) | true/false |
gridlines
|
グリッド線の表示 | true/false |
fzr
|
固定行の繰り返し | true/false |
fzc
|
固定列の繰り返し | true/false |
r1
|
印刷範囲の開始行(0始まり) | 0=1行目 |
c1
|
印刷範囲の開始列(0始まり) | 0=A列 |
r2
|
印刷範囲の終了行(0始まり) | 49=50行目まで |
c2
|
印刷範囲の終了列(0始まり) | 8=I列まで |
top_margin
|
上余白(インチ単位) | 0.5=約1.27cm |
gid
|
対象シートのID | シートタブを右クリックで確認可能 |
このURLをGoogleスプレッドシート内のセルにHYPERLINK関数で埋め込む方法も非常に実用的です。たとえば、スプレッドシートの目立つ場所に「\u\U0001f4c4 PDFを出力する」というリンクセルを作り、クリックするだけで正しい設定のPDF出力が開く、という仕組みを作れます。チームメンバーが毎回印刷設定を迷う必要がなくなります。
実際に業務で使える!複数の便利なGASプログラムコード集
【GASコード1】ワンクリックで指定範囲をPDFにしてGoogleドライブに保存する
これは「毎月の報告書を決まった書式でPDF化してドライブに保存する」という業務に最もよく使われるスクリプトです。印刷設定をURLパラメータで完全に固定した上で、PDFをGoogleドライブに自動保存します。
function exportToPDF() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('報告書'); // 対象シート名を変更してください
const sheetId = sheet.getSheetId();
const spreadsheetId = ss.getId();
// PDF出力URLを組み立て(印刷設定をパラメータで固定)
const baseUrl = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/export?`;
const params = [
'format=pdf',
'size=6', // A4
'portrait=true', // 縦向き
'fitw=true', // 幅に合わせる
'gridlines=false', // グリッド線なし
'fzr=true', // 固定行を繰り返す
`gid=${sheetId}`,
'r1=0', // 開始行(0=1行目)
'c1=0', // 開始列(0=A列)
'r2=49', // 終了行(49=50行目)
'c2=8', // 終了列(8=I列)
'top_margin=0.5',
'bottom_margin=0.5',
'left_margin=0.5',
'right_margin=0.5'
].join('&');
const url = baseUrl + params;
// OAuth認証でPDFを取得
const token = ScriptApp.getOAuthToken();
const response = UrlFetchApp.fetch(url, {
headers: { Authorization: `Bearer ${token}` }
});
// ファイル名に日付を付与してドライブに保存
const today = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy年MM月dd日');
const fileName = `報告書_${today}.pdf`;
const folder = DriveApp.getRootFolder(); // 保存先フォルダ(変更可能)
const pdfFile = folder.createFile(response.getBlob().setName(fileName));
SpreadsheetApp.getUi().alert(`PDFを保存しました\n${pdfFile.getName()}`);
}
このスクリプトを実行すると、指定したシートのA1:I50の範囲が「報告書_2026年03月14日.pdf」という名前でGoogleドライブのルートフォルダに保存されます。保存先フォルダを変更したい場合は、
DriveApp.getRootFolder()
を
DriveApp.getFolderById('フォルダID')
に変更してください。フォルダIDはGoogleドライブでそのフォルダを開いたときのURLに含まれています。
【GASコード2】毎月決まった日時に自動でPDFをメール送信する
「月末に報告書をPDFにして上司にメールする」という定型業務を完全自動化するスクリプトです。Apps ScriptのトリガーをつかってGASコードの自動実行を設定することで、毎月末日の朝9時に自動でPDFが生成・送信されます。
function sendMonthlyReportPDF() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('月次報告書'); // シート名を変更
const sheetId = sheet.getSheetId();
const spreadsheetId = ss.getId();
const baseUrl = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/export?`;
const params = [
'format=pdf',
'size=6',
'portrait=false', // 横向きの場合
'fitw=true',
'gridlines=false',
'fzr=true',
`gid=${sheetId}`,
'top_margin=0.5',
'bottom_margin=0.5',
'left_margin=0.5',
'right_margin=0.5'
].join('&');
const token = ScriptApp.getOAuthToken();
const response = UrlFetchApp.fetch(baseUrl + params, {
headers: { Authorization: `Bearer ${token}` }
});
// 先月の年月を取得してファイル名に使用
const lastMonth = new Date();
lastMonth.setMonth(lastMonth.getMonth() - 1);
const yearMonth = Utilities.formatDate(lastMonth, 'Asia/Tokyo', 'yyyy年MM月');
const fileName = `${yearMonth}_月次報告書.pdf`;
// メール送信
const recipient = 'boss@example.com'; // 送信先メールアドレスを変更
const subject = `${yearMonth} 月次報告書`;
const body = `お疲れ様です。\n\n${yearMonth}の月次報告書をお送りします。\nご確認のほどよろしくお願いします。`;
GmailApp.sendEmail(recipient, subject, body, {
attachments: ,
name: 'Googleスプレッドシート自動送信'
});
console.log(`送信完了: ${fileName}`);
}
// トリガー設定用の関数(初回だけ実行)
function setMonthlyTrigger() {
// 既存のトリガーを削除
ScriptApp.getProjectTriggers().forEach(t => ScriptApp.deleteTrigger(t));
// 毎月1日の午前9時に前月レポートを送信
ScriptApp.newTrigger('sendMonthlyReportPDF')
.timeBased()
.onMonthDay(1)
.atHour(9)
.create();
SpreadsheetApp.getUi().alert('月次自動送信トリガーを設定しました!');
}
このスクリプトの使い方は、まず
recipient
に送信先メールアドレスを入力し、
setMonthlyTrigger()
を一度だけ手動で実行します。これで毎月1日の朝9時に前月の報告書が自動送信されるようになります。スクリプトの承認が求められたら許可してください。
【GASコード3】複数シートを一括でPDFに変換してフォルダに整理保存する
「1つのスプレッドシートに1月〜12月のシートがあって、全部を個別のPDFファイルとしてドライブに保存したい」という要件はよくあります。以下のスクリプトはすべての表示中シートを個別PDFとして保存します。
function exportAllSheetsAsPDF() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const spreadsheetId = ss.getId();
// 保存先フォルダを作成(スプレッドシートと同じ名前のフォルダ)
const folderName = ss.getName() + '_PDF出力_' +
Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyyMMdd');
const folder = DriveApp.createFolder(folderName);
const sheets = ss.getSheets();
let exportedCount = 0;
sheets.forEach(sheet => {
// 非表示シートはスキップ
if (sheet.isSheetHidden()) return;
const sheetId = sheet.getSheetId();
const sheetName = sheet.getName();
const params = [
'format=pdf',
'size=6',
'portrait=true',
'fitw=true',
'gridlines=false',
'fzr=true',
`gid=${sheetId}`,
'top_margin=0.5',
'bottom_margin=0.5',
'left_margin=0.5',
'right_margin=0.5'
].join('&');
const url = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/export?${params}`;
const token = ScriptApp.getOAuthToken();
const response = UrlFetchApp.fetch(url, {
headers: { Authorization: `Bearer ${token}` }
});
folder.createFile(response.getBlob().setName(`${sheetName}.pdf`));
exportedCount++;
// API制限を避けるために少し待つ
Utilities.sleep(500);
});
SpreadsheetApp.getUi().alert(
`${exportedCount}枚のPDFを「${folderName}」フォルダに保存しました!`
);
}
このスクリプトは非表示シートを自動的にスキップする点がポイントです。「印刷用テンプレート」シートを普段は非表示にしておけば、このスクリプトを実行しても対象から外れます。また
Utilities.sleep(500)
で500ミリ秒の待機を入れているのは、GoogleのAPIレート制限に引っかかるのを防ぐためです。シートが多い場合はこの数値を1000(1秒)に増やすとより安全です。
【GASコード4】印刷前に「印刷チェックリスト」を自動表示するスクリプト
情シス視点で一番現場で役に立つのがこれです。印刷を実行する前に、確認事項をチェックリストとしてポップアップで表示する仕組みです。「タイトル行固定されてる?」「印刷範囲あってる?」という確認漏れによるミス印刷を防ぎます。
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('印刷ツール')
.addItem('印刷前チェックを実行', 'printChecklist')
.addItem('PDFを保存', 'exportToPDF')
.addSeparator()
.addItem('印刷範囲を確認・設定', 'showPrintRangeInfo')
.addToUi();
}
function printChecklist() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getActiveSheet();
const ui = SpreadsheetApp.getUi();
// 固定行の確認
const frozenRows = sheet.getFrozenRows();
const frozenCheck = frozenRows > 0
? `✅ 固定行${frozenRows}行が固定済み`
: '⚠️ 固定行設定なし(タイトル行が繰り返されません)';
// データの最終行・列を確認
const lastRow = sheet.getLastRow();
const lastCol = sheet.getLastColumn();
const lastColLetter = columnToLetter(lastCol);
const message = [
'【印刷前チェックリスト】',
'',
frozenCheck,
`\u\U0001f4cb データ範囲A1〜${lastColLetter}${lastRow}`,
'',
'以下を印刷設定画面で確認してください',
'□ 印刷範囲が「選択中のセル」になっているか',
'□ スケールが「幅に合わせる」になっているか',
'□ 「固定行を繰り返す」にチェックが入っているか',
'□ ブラウザ側の倍率が100%(デフォルト)になっているか',
'',
'チェック完了後にCtrl+Pで印刷設定を開いてください。'
].join('\n');
ui.alert('印刷前チェック', message, ui.ButtonSet.OK);
}
function columnToLetter(column) {
let temp, letter = '';
while (column > 0) {
temp = (column - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
column = (column - temp - 1) / 26;
}
return letter;
}
function showPrintRangeInfo() {
const sheet = SpreadsheetApp.getActiveSheet();
const selection = sheet.getActiveRange();
const ui = SpreadsheetApp.getUi();
if (!selection) {
ui.alert('セルを選択してから実行してください。');
return;
}
const r1 = selection.getRow() - 1; // 0始まり
const c1 = selection.getColumn() - 1;
const r2 = selection.getLastRow() - 1;
const c2 = selection.getLastColumn() - 1;
ui.alert(
'選択範囲のURLパラメータ',
`現在の選択範囲をURLパラメータで指定する場合\n\nr1=${r1}&c1=${c1}&r2=${r2}&c2=${c2}\n\nこの値をPDF出力URLに追加することで印刷範囲を固定できます。`,
ui.ButtonSet.OK
);
}
このスクリプトをスプレッドシートに追加すると、メニューバーに「印刷ツール」が追加されます。「印刷前チェックを実行」を押すと、固定行の状態やデータ範囲などを確認したチェックリストがポップアップで表示されます。また「印刷範囲を確認・設定」を使うと、選択中のセル範囲をURLパラメータ形式で表示してくれるため、前述のPDF出力URLを作る作業が楽になります。
知らないと損する!Googleスプレッドシート印刷の隠れた便利機能
セルの背景色や書式は印刷に反映されるか?
「セルを色付きにしているのに印刷すると白黒になる」という相談は意外と多いです。Googleスプレッドシートの印刷設定画面にある「書式」セクション内に「背景色を印刷する」というオプションがあります。これをオンにすれば、セルの背景色も印刷物に反映されます。ただし、カラープリンターが必要ですし、インクやトナーの消費量が増えることを念頭においてください。白黒プリンターで印刷する場合は背景色の代わりに、罫線や太字で表の構造を表現するデザインに切り替えるのが賢明です。
印刷のたびにシート名と日付をフッターに入れる方法
複数ページにわたる長い印刷物では、ページが混在したときに「これ何のシートのP.3だっけ?」となりがちです。印刷設定の「ヘッダーとフッター」セクションで「シート名」「ページ番号」「更新日時」をオンにすると、全ページのフッターにこれらの情報が自動挿入されます。特にページ番号は「1/3」(全3ページ中の1ページ目)という形式で表示されるため、印刷後に紙をまとめるときに非常に便利です。正式な社内書類では必ず設定しておきましょう。
グリッド線(罫線)の扱いを間違えると印刷がスカスカに見える
GoogleスプレッドシートでデータをExcelから移行したとき、「画面ではきれいなのに印刷するとセルの区切り線が消える」という問題がよく起きます。これはExcelのデフォルト罫線とGoogleスプレッドシートのグリッド線の扱いが異なるためです。
Googleスプレッドシートでは、グリッド線(薄いグレーの線)と罫線(セルに設定する太さや色を指定できる線)は別物です。印刷設定の「グリッド線を表示」をオンにしてもExcelのような見た目にはなりません。印刷物でセルの区切りをしっかり表示したい場合は、シート上でセルを選択し「罫線」ボタンから明示的に罫線を設定する必要があります。これはExcelユーザーが特に見落としやすいポイントです。
スプレッドシートのURLから直接PDFダウンロードする「ブックマークURL」活用術
これは情シス担当者が社内展開するときに特に重宝するテクニックです。毎回同じ設定で印刷・PDF化する必要があるスプレッドシートに対して、前述のURLパラメータを使ったURLをGoogleスプレッドシート内のセルに直接埋め込んでおく方法です。
たとえばA1セルに以下のような数式を入れます。
=HYPERLINK("https://docs.google.com/spreadsheets/d/"&SPREADSHEET_ID&"/export?format=pdf&size=6&portrait=true&fitw=true&gridlines=false&fzr=true&gid="&SHEET_GID, "\u\U0001f4c4 PDFで出力する")
SPREADSHEET_ID
と
SHEET_GID
の部分を実際のIDに置き換えてください。スプレッドシートIDはURLの
/spreadsheets/d/
以降の文字列、シートGIDはシートタブを右クリックして「シートIDを取得」から確認できます(またはURLの
#gid=
以降の数字)。このリンクをクリックするだけで、設定済みのPDFが即座にダウンロードされます。毎週・毎月同じシートを出力する業務担当者に共有すれば、印刷設定の説明をする手間が一切なくなります。
Googleスプレッドシートの印刷設定が「複数人で共有すると崩れる」本当の理由
組織でGoogleWorkspaceを運用していると、「自分がきれいに設定したシートを同僚が開いて印刷したら設定が違った」という問題が頻発します。この背景には、Googleスプレッドシートのアーキテクチャ的な特性があります。
Googleスプレッドシートのファイル本体(クラウド上のデータ)には、セルの値・書式・数式・スクリプト・保護設定などが保存されます。しかし印刷設定は、ユーザーのブラウザセッションに依存する一時データとして扱われます。つまり「印刷設定はファイルではなくユーザーのブラウザに属している」という設計です。
この設計はGoogleのクラウドファースト哲学に基づいています。デバイスや画面サイズが違うユーザー間でひとつの「印刷設定」を共有することは現実的ではない、という考え方です。たとえばWindowsのA4プリンターを使うユーザーと、MacのUSレターサイズプリンターを使うユーザーが同じファイルを共有している場合、ひとつの印刷設定では対応できません。
この制約を踏まえた上で、組織的な解決策としては、前述のPDF出力URLをドキュメント内に埋め込む方法か、Apps Scriptで印刷処理を統一化するか、もしくは「PDF化専用のシート」を標準テンプレートとして組織内で共有することが現実的なアプローチです。
ぶっちゃけこうした方がいい!
ここまで読んでくれた方には正直に言います。Googleスプレッドシートの印刷設定を「保存する」ことに毎回悩んでいるなら、そもそも「毎回GUIで印刷設定をいじる」という作業フローを捨てた方がいいです。
10年以上情シスをやってきてたどり着いた結論は、「人間が毎回設定する仕組みは必ず崩れる」ということです。忙しいとき、急いでいるとき、慣れていないメンバーが代わりに印刷するとき、かならずミスが起きます。だからこそ設定をコードやURLに落とし込んで「クリックするだけ」の状態にしておくことが、組織全体の印刷ミスをゼロに近づける唯一の道です。
具体的に言うと、今すぐやるべきことは2つです。まずよく印刷するシートに対して、PDF出力URLパラメータを組んでスプレッドシート内のセルにリンクとして貼り付けることです。次に、月次・週次などの定期的な印刷・PDF化が必要な業務はGASスクリプトとトリガーで完全自動化することです。これをやるのに必要な時間は初期設定で30分から1時間程度です。でも一度作ってしまえば、その後の毎回の「印刷設定どうだっけ」という時間がゼロになります。
印刷設定が保存されないのはGoogleの仕様です。でも、だからといって毎回手動で設定し直すのはもったいない。仕様に文句を言うより、その仕様を前提に「設定を不要にする仕組み」を作る方が10倍生産的です。そのための道具がURLパラメータとApps Scriptです。ぜひ今日中に1本スクリプトを書いてみてください。最初の1本さえ動けば、あとはコピー&ペーストで展開できます。印刷ミスにイライラする時間を、もっと本質的な仕事に使いましょう。
このサイトをチップで応援
Googleスプレッドシートの印刷設定が保存されない問題に関するよくある質問
印刷設定を毎回同じにするための一番簡単な方法は?
最も手軽な方法は「印刷用テンプレートシートを作ってコピーする」やり方です。一度理想の印刷レイアウトを整えたシートを「印刷テンプレート」として保存し、次回からはそのシートを複製して使います。完全に設定が再現されるわけではありませんが、ゼロから設定するよりずっと効率的です。さらに手間を省きたい上級者は、Apps Scriptでシートの複製を自動化する方法を試してみてください。
「固定行を繰り返す」がグレーアウトしていて選択できないのはなぜ?
これはシート上でタイトル行が「固定」されていないことが原因です。印刷設定を開く前に、シートに戻って1行目の行番号をドラッグするか、「表示」→「固定」→「1行」を選択して固定行を設定してください。太いグレーの線が1行目の下に表示されたら準備完了です。その後に印刷設定を開き直すと、グレーアウトが解除されてチェックが入れられるようになります。
印刷範囲を設定したのに余計な列まで印刷されてしまうのはなぜ?
これはGoogleスプレッドシートの仕様によるものです。「カスタムの改ページを設定」で改ページ位置をドラッグして除外しようとしても、その列にデータが入力されていると印刷範囲から外せないことがあります。解決策は、印刷設定を開く前にあらかじめ印刷したいセル範囲だけをドラッグで選択しておき、印刷設定で「選択中のセル」を選ぶことです。これにより、選択外のセルは印刷対象から除外されます。
GoogleスプレッドシートとExcelの印刷設定の保存の違いは?
Excelでは「ページレイアウト」→「印刷範囲の設定」でファイル本体に印刷範囲を保存できます。一方、Googleスプレッドシートはクラウドネイティブな設計のため、印刷設定はセッションごとにリセットされる仕様です。印刷範囲・スケール・余白・改ページ位置のいずれもファイルには保存されません。この違いを理解した上で、テンプレートシートや名前付き範囲、Apps Scriptなどの代替手段を活用することが重要です。
Apps ScriptでGoogleスプレッドシートの印刷設定を自動化できる?
Google Apps Scriptには印刷設定(余白・スケール値など)を直接操作するAPIは提供されていません。ただし、あらかじめ印刷レイアウトを整えた「テンプレートシート」を自動複製するスクリプトを作成することで、実質的に印刷設定を「再現」することはできます。また、Apps Scriptを使ってシートをPDFに変換しGoogleドライブに保存する自動化は可能です。定期的なPDF出力が必要な業務では特に有効な方法です。
スマートフォンやタブレットからGoogleスプレッドシートを印刷するには?
GoogleスプレッドシートのAndroid・iOSアプリからも印刷は可能ですが、設定できる項目がパソコンのブラウザ版より少なくなっています。モバイルアプリからの印刷では、接続されているプリンターへの出力・コピー数・カラーまたは白黒・両面印刷(プリンターが対応している場合)・用紙サイズ・向き・ページ指定などが設定できます。精度の高い印刷設定が必要な場合は、パソコンのChromeブラウザからの操作を強くおすすめします。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめGoogleスプレッドシートの印刷設定「保存されない問題」を制する者が時間を制す!
GoogleスプレッドシートはExcelと違って印刷設定がファイルに保存されません。これは仕様であり、バグではありません。でも、正しい回避策を知っていれば、毎回設定し直す無駄な時間から解放されます。
重要なポイントを整理しましょう。印刷前にあらかじめセル範囲を選択して「選択中のセル」を指定すること、「スケール」を「幅に合わせる」に設定してはみ出しを防ぐこと、タイトル行を繰り返したいときは事前に固定行を設定しておくこと、そして設定を再利用したいなら印刷用テンプレートシートを作成するかApps Scriptで自動化することが効果的です。
2026年現在、GoogleWorkspaceは業務の中心になっています。印刷・PDF出力の設定を毎回手動でやり直すという非効率から脱出して、テンプレートや自動化の力を借りることが、生産性向上への近道です。ぜひ今日からこの記事で紹介した方法を試してみてください。あなたの「印刷設定リセット地獄」に、今日で終止符を打ちましょう。






コメント