- 投稿日:2026/02/08
0章|この記事でできること(最初にゴールを固定)
この勉強会ハンズオンでは、スプレッドシートとGASを使って「請求書送付」を自動化します。 難しそうに見えますが、手順どおりに進めれば初心者の方でも再現できます。
今回できるようになることは、次の6つです。
・GASでGoogleドライブに「サンプルフォルダ」を自動作成する
→ここで「承認(権限)」の流れも体験します
・請求書シートの範囲(A1:F44)を、A4縦のPDFに変換する
・変換したPDFを、指定したGoogleドライブのフォルダに保存する
・保存したPDFを、Gmailで自動送信する
・仕上げとして、メニュー/ボタンで「1クリック実行」にする
・延長戦として、誤送信防止(送信前の確認など)を追加する
このハンズオンは、勉強会で配布したサンプルスプレッドシートとプロンプトテンプレを前提にしています。 シート名・PDF化する範囲(A1:F44)・用紙(A4縦)は固定なので、迷わず進められます。
1章|勉強会配布資料
今回の勉強会資料は、Webサイト(Webアプリ)にすべてまとめてあります。
画像のとおり、Step1〜Step5の順に進めればOKです。
※Step6はアンケートですが、期限が切れています。
Step1|勉強会スライド資料(開く)
まずはスライドを開いて、全体像をつかみます。 この記事は手順書として書いていますが、スライドを見ると「今どの段階か」流れがわかります。
Step2|サンプルスプレッドシート(コピーして使う)
配布シートを自分のドライブにコピーして使います。 今回のハンズオンは、次の前提が固定です。
シート名:請求書、マスタ
PDF化する範囲:A1:F44
用紙:A4縦
固定にしている理由はシンプルで、初心者が詰まりやすい「範囲ズレ」「シート名ズレ」を最初から消すためです。
Step3|Google Drive フォルダ作成コード(コピー)
ここは最初の一歩です。 GASを動かして、Googleドライブにサンプルフォルダを作成します。
Step4|AIへの指示用プロンプト(PDF→Gmail)(コピー)
ここから本番です。配布プロンプトをそのままAIに渡します。
Step5|完成版コード(保険)(コピー)
AIのコード生成がうまくいかなかった場合のために、動作確認済みコードも用意しています。
GmailでPDFを添付送信
送信後にPDFの名前とURLをログに出す
詰まったらここに戻って、まず動かして成功体験を取りにいきます。
2章|GASとは
GASは「Googleサービスをつなぐ自動化スイッチ」
GAS(Google Apps Script)は、Googleが用意している仕組みで、 スプレッドシートやGmail、Googleドライブなどを“つないで”作業を自動化できます。
イメージとしては、
ふだん人がやっている「手作業」を
ボタン1つで、まとめて実行できるようにする
たとえば、請求書送付だと
PDFを作る
→フォルダに保存する
→メールで送る
この3つを、毎回手でやっている人が多いです。
GASはここをまとめて自動化できます。
今回は「Sheets→Drive→Gmail」をつなぐ
今回のハンズオンは、まさにGASの得意技です。
Sheets(スプレッドシート):請求書の元データがある場所
Drive(Googleドライブ):PDFを保存する場所
Gmail:保存したPDFを送る場所
専門用語ミニ辞書(5つだけ)
承認(権限)
GASがDriveやGmailにアクセスする許可を出すこと。最初は必ず出る。
ログ
実行中に「いま何をしたか」を記録するメモ。うまく動かないときの手がかりになる。
関数
GASの中で「この処理をやる」という命令のまとまり。ボタンやメニューから呼び出して動かす単位。
フォルダID
Driveのフォルダを特定するための文字列。URLの一部。今回だとマスタB2に入れる。
onOpen
スプレッドシートを開いたタイミングで自動実行される特別な関数。メニューを自動で出すときに使う。
3章|体験1:Driveフォルダの自動作成
この章の目的は2つです。
✅️ GASを動かして「自動で動く」体験をする
✅️ 最初の壁である承認(権限)をここで突破する
STEP1|拡張機能からApps Scriptを開く
サンプルスプレッドシートを開きます
メニューから 拡張機能 → Apps Script をクリックします
ブラウザでスクリプトエディタが開けばOKです
ここで開く画面が、これからGASを貼り付けて実行する場所になります。
STEP2|配布されたコードをエディタに貼る
配布ページの Step3 にある「Google Drive フォルダ作成コード」をコピーします。 そのままApps Scriptの画面に貼り付けます。
💡 ポイント
Driveフォルダ作成.gsにコピペする
最初から入っているコードは上書きしてOK
貼り付けたら保存します(保存ボタンを押す)
STEP3|実行して権限を承認する
保存できたら、実行ボタンを押します。 初回はほぼ確実に「承認が必要です」が出ます。ここが最初の山場です。




STEP4|Driveに新フォルダが作成される
実行が成功すると、Googleドライブにフォルダが作成されます。 この時点で「自動化の第一歩」はクリアです👏
4章|作業1:作成したDriveフォルダのリンクをマスタに貼る
配布スライドでは、フォルダのURLをマスタに貼り付ける流れになっています。
STEP1|フォルダの共有設定を変更する

作成されたフォルダを開き、共有設定を リンクを知っている全員(閲覧者でOK) に変更します。
STEP2|リンクをコピーする
共有画面の「リンクをコピー」を押してURLを取得します。
STEP3|マスタシートのセルB1に貼り付ける
スライドの指示通り、マスタシートのB1にURLを貼り付けます。
STEP4|セルB2にIDが抽出されたことを確認する
B1にURLを貼ると、B2にフォルダIDが自動で入る設計になっています。 ここでB2が空のままだったら、次へ進まず止まってOKです。
STEP5|セルB3に送信したい宛先を入力する
まずはテストなので、自分のメールアドレスを入れます。 このB3が、後でGmail送信の宛先になります。
5章|ハンズオン②:AIにプロンプトを渡して本体を作る
ここからが本番です。自分でコードを書くのではなく、配布資料のプロンプトをそのままAIに渡して「本体(PDF作成→保存→Gmail送信)」のコードを作ります。
この章のゴールは2つです。
✅️ 請求書シート(A1:F44)をA4縦PDFにしてDriveへ保存できる
✅️ 保存したPDFを、Gmailで自動送信できる
事前チェック(ここが揃っていれば成功率が上がる)
ハンズオン①と作業①を終えた時点で、次が揃っているか確認します。
・マスタB2にフォルダIDが入っている
・マスタB3に送信したい宛先(今回は自分のメール)が入っている
・請求書シートが存在していて、範囲がA1:F44になっている
揃っていれば次へ進みます。
STEP1|配布資料のStep4を、そのままAIに入力する
配布ページの Step4「AIへの指示用プロンプト(PDF→Gmail)」 を開き、全文をコピーします。そのままChatGPTやGeminiなどのAIに貼り付けて送信します。
💡 ポイント:プロンプトは改変しなくてOKです
STEP2|AIが返したコードをApps Scriptに貼り付ける
AIがコードを返してきたら、コード部分をコピーします。次に、Apps Scriptの画面に戻ります。
PDF→Gmail.gs選択する
AIのコードを貼り付け
保存ボタンを押す
ここで大事なのは「とりあえず動かす」ことです。
細かい改善(件名、本文、ファイル名など)は後でできます。
STEP3|実行して、2回目の承認を通す
保存したら、実行ボタンを押します。すると多くの場合、ここで 2回目の承認(権限) が出ます。
これは正常です。理由はシンプルで、今回は
Driveへのアクセス(PDF保存)
Gmailの送信(メール送付)
が必要になるため、最初のフォルダ作成よりも強い権限が追加されるからです。
承認の流れは基本的に同じです。
ただし、今回は最初のGASよりも使用するツールが多いために、すべて選択にチェック☑️をして続行してください。
承認が通れば、そのまま処理が最後まで走ります。
STEP4|GmailにPDFが届けば成功
実行が成功すると、マスタB3に入力した宛先にメールが届きます。添付ファイルとして、請求書PDFが入っていれば成功です。
6章|つまずき救済:エラーが出た時の戻り方
ここは短くいきます。 GAS×AIハンズオンでエラーが出るのは普通です。大事なのは「戻り方」を決めておくことです。
まずルールは1つだけ
赤いエラー全文を、そのままAIに貼って「エラーを修正して」と言う。
Apps Scriptの「実行ログ」に出た赤いエラーをコピー(もしくはスクショでもOK)
※MacBookの場合は、⌘ + ⌥ + Aのショートカットキーでスクショを撮って、AIの入力欄に⌘ + Vで貼り付けるだけです。
AIに貼る
「エラーを修正して」一言だけ添える
これでOKです。 エラー文を自分で解読しようとして止まるより、復帰が早いです。
何回か挑戦してエラー修正できない場合には、AIで新しいチャットを立ち上げて、もう一度プロンプトを入れ直す方が早い場合もあります。
7章|実務化:メニュー化・ボタン化で1クリックにする
ここまでで「PDF作成→Drive保存→Gmail送信」は動きました。でも、毎回Apps Scriptを開いて実行するのは現場では面倒です。
この章では、スプレッドシート上から 1クリックで実行できる形 に仕上げます。
・メニュー追加(onOpen)
・図形ボタン(シート上のボタン)
どちらか片方でもOKですが、両方やると運用が楽になります。
方法①|onOpenでメニューを追加する
STEP1|メニュー用のコードを追加する
Apps Scriptに、新しいスクリプトを追加します。
スクリプト名は「メニュー」など何でも大丈夫です。
そして、次のコードを追加します。
function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu('請求書ツール')
.addItem('請求書PDF作成&メール送信', 'exportInvoicePdfAndSendMail')
.addToUi();
}
ここで一番大事なのは、最後の 'exportInvoicePdfAndSendMail' です。これは「クリックされた時に実行する関数名」なので、あなたの本体関数名と一致していないと動きません。
STEP2|本体関数名を確認して合わせる
AIが作ったコードの中で、メイン処理の関数名を探します。例:
function exportInvoicePdfAndSendMail() { ... }
function main() { ... }
function sendInvoice() { ... }
もし本体が function main() なら、メニュー側もこう直します。
.addItem('請求書PDF作成&メール送信', 'main')
この「関数名の一致」が、ここで一番詰まりやすいポイントです。
STEP3|保存して、シートを開き直す
onOpenは「シートを開いた時」に動きます。なので、保存したら一度シートを更新(再読み込み)してください。
方法②|図形ボタンを作って、関数を割り当てる
メニューよりもさらに分かりやすいのが、シート上のボタンです。非エンジニアの方に渡すなら、ボタン運用が一番安定します。
STEP1|図形を作る
スプレッドシートで
挿入 → 図形描画
を開き、四角形などの図形を作ります。中に「送信」や「請求書送付」などの文字を入れて保存します。
STEP2|図形にスクリプトを割り当てる
シート上に配置された図形の右上の「︙」をクリックし、
スクリプトを割り当て
を選びます。
そこに、実行したい関数名を入力します。
例:exportInvoicePdfAndSendMail
⚠️注意点
・() は付けません
・コピペするなら、関数名だけを正確に
STEP3|クリックして動けば完成
ボタンを押して、請求書PDFが作成されてメール送信されれば成功です。
ここで詰まった時のチェック(最短)
・関数名が一致しているか
・スペルミスがないか(大文字・小文字含めて)
・onOpenを追加した後、シートを開き直したか
・図形を削除したいときには右クリックを押します。
⚠️ここも注意点
一度スクリプトを割り当てると、クリックするだけでGASが実行されてしまいます。そのため、図形を削除したい、編集したい場合には右クリックを押して右上の「︙」を表示させ、そこから編集や削除を行ってください。
8章|延長戦:誤送信防止
本編が終わったあと、参加者の方からこんな質問が出ました。
👤「送信する前に、確認メッセージを出せませんか?」
請求書のように“送ったら戻せない作業は、実務だとここが一番怖いポイントです。 そこで居残り時間で、誤送信防止として 送信前の確認ダイアログ(OK/キャンセル) を追加しました。

ここで大事なのは、完成した機能そのものだけではありません。
勉強会で参加者に一番伝えたかったのは、次の考え方です。
✅️ 疑問をそのままAIに投げる
✅️ AIが「必要な処理」を考えて
✅️ それっぽいコードに落としてくれる
つまり、エラー対応だけでなく「改善アイデア」もAIに投げられる、ということです。
まとめ|GAS×AIで「請求書送付」を1クリックにできた
今回は勉強会ハンズオンとして、スプレッドシートとGASを使い、請求書送付の流れを自動化しました。 ゴールは「手順どおりにやれば、初心者でも再現できる」こと。配布物も含めて、迷子になりにくい形に整えています。
この記事でやったこと
・GASでGoogleドライブにサンプルフォルダを自動作成(まずは成功体験)
・請求書シート(A1:F44)をA4縦PDFに変換してDriveへ保存
・保存したPDFをGmailで自動送信
・メニュー化/ボタン化で1クリック実行に
・延長戦で誤送信防止(送信前の確認ダイアログ)を追加
次におすすめの横展開(同じ型で増やせる)
今回の仕組みは請求書だけで終わりません。次のように横展開できます。
・見積書/納品書/報告書のPDF化と自動送付
・送信ログをシートに残す(日時・宛先・ファイルURL)
・宛先を複数にして一括送信(誤送信防止つき)
・「テスト送信モード」を用意して安心運用
おわりに:お願い🙏
✅️ この記事が少しでも役に立ったと感じたら、つぶやきでシェア、コメントやいいね、ブックマークをよろしくお願いします✨️次の記事を作る励みになります🐹✨️
✅️ スプレッドシートの相談に乗ります❗️ノウハウ図書館でいくつものテンプレートを配布していますが、
💭「読んだだけじゃわからない…🌀」
💭「自分が使っているものを見てもらいたい…」
という方はぜひスキルマーケットでご相談ください🙏
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
これからもスプシの関数や便利な情報について記事を投稿していき、少しでもスプシへのハードルを下げていきたいと思っています✨️
この記事がスプシのトリセツの目次(まとめ記事)になりますので
👇️こちらの記事のブックマークをおすすめします👍️
【保存版】スプシのトリセツ〜見て・触って・覚える!初心者のためのスプレッドシート練習帳付〜【目次】
随時、更新していきます🐹
最後まで読んでいただきありがとうございました♪
何かわからないことなどありましたらお気軽にコメントやDMください📥️✨️