GASでGmailをスプレッドシートに自動転記してみた|コードは書かずに動かすまで

GASでGmailの申込みメールをスプレッドシートに自動転記した記事のアイキャッチ。メールが1通ずつ表の1行に入っていくイメージ AIツール

Gmailに届いた申込み・予約・問い合わせのメールを探して、Googleスプレッドシートに1通1行で書き出す仕組みをGASで作りました。

コードはAI(Claude)に書いてもらいました。私がやったのは、コードの貼り付け、Googleの承認、テストメールの送信の3つだけです。コードは1行も書いていません。

作業したのは2026年10月2日の夜で、終わったのは日付が変わった10月3日の0時台でした。1回目のテストでは2か所うまくいかず、直してもらってから2回目で合格しています。

この記事では、動かすまでの手順と、私が実際につまずいた所・その直し方をまとめます。「申込みメールを手で表にコピーしているけど、コードは書けない」という人が、つまずく所を先に知っておけるように書きました。

きっかけは、GASを一回ちゃんと触ってみたかったことです。そもそもスプレッドシートにこういう機能を付けられること自体、このときまで知りませんでした。

作ったもの:メールを1通1行でスプレッドシートに書き出す仕組み

作ったのは、Gmailの申込みメールを読み取ってスプレッドシートの一覧に書き出す仕組みです。できることは次のとおりです。

  • 決めた項目だけを列に分ける:本文の「お名前:〇〇」のような行から、お名前/メールアドレス/電話番号/希望日/ご要望だけを取り出します。「【お名前】〇〇」のようなカッコで囲む書き方や、2行以上あるご要望にも対応しています
  • 同じメールは2回書かない:書き出したメールにはGmailの「ラベル」(メールに付ける目印)で「転記済み」が付きます。もう一度取り込んでも重複しません
  • 「=」で始まる文字を計算式にしない:スプレッドシートは「=」で始まる文字を計算式として動かそうとします。メール本文にそういう文字があっても式として動かないようにしてあります(安全のためです)
  • 15分ごとの自動取り込み:メニューからオン・オフを切り替えられる機能も入っています(この記事では手動の取り込みで確かめた範囲を書いています)
  • 設定は「設定」シートで変えられる:コードを触らなくても、設定用のシートで変更できます
仕組みの図。Gmailに届いた申込み・予約・問い合わせのメールをGASが読み取り、お名前・メールアドレス・電話番号・希望日・ご要望を取り出して、スプレッドシートの申込み一覧に1通1行で書き込む。取り込んだメールには「転記済み」ラベルを付けるので同じメールは2回書かない。探すメールの条件や項目は設定シートで変えられる

手順:手順書どおりなら5分ほど

AIにはコードと一緒に、動かすまでの手順書(やることを順番に書いたメモ)も作ってもらいました。その手順書どおりに進めれば、手順だけなら5分ほどです。作業には副業用のGoogleアカウントを使いました。

スプレッドシートを新しく作る

Googleスプレッドシートを新しく作ります。私は「申込みメール自動転記(見本)」という名前にしました。

Apps Scriptを開いてコードを貼る

コードは、AIに作りたいものを伝えて書いてもらいました。自分で頼むなら、たとえば「Gmailに届く申込みメールから、お名前・電話番号・希望日・ご要望を取り出して、Googleスプレッドシートに1通1行で書き出すGASのコードを書いて。同じメールは2回書かないようにして」のように、取り出したい項目とやってほしいことをそのまま伝えるのがいいと思います。自分で用意するのが面倒な人向けに、この記事と同じ設定のテンプレートも用意しています(記事の最後にリンクがあります)。

  1. スプレッドシート上のメニューの「拡張機能」→「Apps Script」を開きます(Apps Script=GASのコードを書く画面です)
  2. 最初から入っている文字を全部消して、AIが書いたコードを全部貼り付けて保存します
  3. スプレッドシートに戻って再読み込みすると、メニューに「メール取り込み」が出てきます

「最初の準備」とGoogleの承認

「メール取り込み」→「最初の準備(シートを作る)」を押すと、Googleの承認画面が出ます。承認とは「このスクリプトに、自分のGmailやスプレッドシートを触らせてもいいですか?」という確認のことです。

  1. 「承認が必要」と出たら、自分のアカウントを選びます
  2. 「このアプリは Google で確認されていません」と出たら、「詳細」→「〇〇(安全ではないページ)に移動」→「許可」の順に押します(〇〇にはスクリプトの名前が入ります)

この「確認されていません」は、Googleの審査(検証)を通していないスクリプトが、Gmailやドライブ(Googleドライブ)などの権限を求めるときに出る表示です。自分のアカウントで自作したスクリプトは、審査を通していないのがふつうです。

ただし、他人から渡されたスクリプトでは、中身が分からないまま「許可」を押さないでください。 許可すると、そのスクリプトが自分のGmailなどを触れるようになるためです。

正直に書くと、この画面を見たときはちょっと怖くなって、一回手が止まりました。そこでAIに聞いてみて、自作のスクリプトならふつうに出る表示だと分かったので、先に進みました。

「設定」シートで変えられる所

取り込みの設定は「設定」シートで変えられるので、コードを開く必要はありません。設定シートには4つの項目があります。

  • 検索条件:どのメールを取り込むか。Gmailの検索欄と同じ書き方で、見本では件名に「申込み」「予約」「お問い合わせ」などが入った、直近30日のメールに絞っています
  • 取り込む項目:本文から取り出す項目名をカンマ区切りで並べます。この順に列ができます
  • 処理済みラベル:取り込んだメールに付けるラベルの名前(見本では「転記済み」)
  • 1回に見るスレッド数:一度に見るメールのまとまりの数。多すぎると時間切れになるので、50前後がおすすめと説明に書いてあります

設定シートの説明には「本文の『項目名:内容』の項目名をカンマ区切りで」とあります。届くメールが「お名前」ではなく「氏名」なら、ここも「氏名」にする形です(私は見本の項目名のままでしか試していません)。

「設定」シートの画面。検索条件、取り込む項目(お名前・メールアドレス・電話番号・希望日・ご要望)、処理済みラベル(転記済み)、1回に見るスレッド数(50)の4行と、それぞれの説明が並んでいる

テストメール3通で確かめる

動いたかどうかは、テストメールで確かめました。自分あてに3通送ってから、「メール取り込み」→「今すぐ取り込む」を押します。

3通は、わざと書き方をバラバラにしてあります。実際の申込みメールも、送る人によって書き方が違うからです。中身はすべて架空です。

件名書き方の特徴
1通目【お申込み】体験レッスン「お名前:山田 花子」のようにコロンで区切る。希望日:10月12日
2通目【予約】10月15日のお願い「【お名前】佐藤 一郎」のようにカッコで囲む。【希望日】は「10月15日 14:00」と時刻入り。【ご要望】が2行(駐車場はありますか?/子ども連れです。)
3通目お問い合わせ(料金について)「■お名前 :鈴木 次郎」の形。ご要望が「=料金表を送ってください」と「=」で始まる

合格の条件は、次の5つにしました。

  • 一覧に3行入る
  • 2通目のご要望が2行のまま入る
  • 3通目が「=料金表…」の文字のまま入る(計算式にならない)
  • もう一度取り込んでも増えない(0件)
  • 3通に「転記済み」ラベルが付く

1回目の失敗と直し方

1回目のテストでは、2か所うまくいきませんでした。

1回目のテストで出た2つの失敗と直し方。2通目の希望日が空になった原因は「14:00」のコロンを区切りと読み違えたことで、【】の形の行を先に読むように直した。1通目の「10月12日」が日付データに変わった原因はスプレッドシートの自動変換で、見た目では気づけなかった。その列を書式なしテキストにした。直したコードで再テストし、合格の条件5つを全部クリアした

2通目の「希望日」だけ空っぽだった

2通目の行だけ、「希望日」の列が空になっていました。

原因は「14:00」の「:」です。コードが、時刻の中の「:」を、項目名と中身を分ける区切りの「:」だと読み違えていました。

そこで、「【希望日】」のような【】の形の行を先に読むように、コードを直してもらいました。【】の形なら項目名は【】で分かるので、中身の「14:00」の「:」を区切りと間違えずに済みます。

1通目の「10月12日」が勝手に日付データに変わっていた

もう1つは、1通目の「10月12日」が、スプレッドシートに入った時点で日付のデータに変わっていたことです。スプレッドシートは、日付っぽい文字を見ると自動で日付として扱おうとします。見た目はほとんど同じでも、中身はメールに書かれた文字ではなく、スプレッドシートが決めた日付(年も勝手に付きます)になってしまいます。

これには気づいていませんでした。画面は見ていたのに、自分では気づけませんでした。結果の画面のスクショを貼ってAIに聞いたら、そこで初めて指摘されました。

直し方は、その列を「書式なしテキスト」にすることでした。書式なしテキストとは、入れた文字をそのまま文字として扱う設定です。

貼り直して再テスト

直してもらったコードを貼り直して、もう一度テストしました。今度は合格の条件5つを全部満たしました。

失敗を見たときは、自分でも意外なくらい冷静でした。「まあ一発では動かないよね」という感じです。

日付の件で思ったのは、AIが作ったから安心というわけではない、ということです。自分でのダブルチェックのひとつとして、日付が入る列はちゃんと意識して見るようにしたいと思っています。

合格した画面

合格したときの「申込み一覧」です。取り出した5つの項目のほかに、受信日時・件名・本文の先頭部分などの列も入ります。データはすべて架空で、送った人(メールアドレス)の列は隠してあります。

合格したときの「申込み一覧」シート。架空のテストメール3通が1通1行で入り、お名前・メールアドレス・電話番号・希望日・ご要望などの列に分かれている。希望日は「10月12日」「10月15日 14:00」のまま文字で入っている

合格したときは、思ったより簡単に作れたなと感じて、もっと色々作りたくなりました。実際にこのあと、同じやり方でさらに2つ、小さな自動化を作っています。画面の意味が分からない所はAIに聞きながら、テストは自分で動かしました。

つまずきやすい所のまとめ

これからやる人向けに、私がつまずいた所・気をつけたい所をまとめます。

  • 承認画面の「確認されていません」:自作のスクリプトなら出る表示です。他人から渡されたものでは、中身が分からないまま許可しないこと
  • 「:」の読み違い:「14:00」のように、中身に「:」が入っていると区切りと間違えることがあります。時刻入りのテストメールを1通入れておくと見つけやすいです
  • 日付の自動変換:「10月12日」のような文字は、勝手に日付データになることがあります。見た目では気づきにくいので、文字のまま残したい列は「書式なしテキスト」にしておきます
  • 「=」で始まる文字:そのままだと計算式として動こうとします。式にならないように対策しておきます

作った見本はテンプレートにした

この見本は、あとで設定済みのテンプレートにして出品しました(2026年10月10日)。商品にする前に、見本の一覧に自分のGmailアドレスが残っていたことに気づいて消しています。お客さんに渡す前の、見本の段階で気づけてよかったです。見本を人に渡すときは、データ行に自分の情報が残っていないか確かめてください。

自分でコードを用意するのが面倒な人は、記事の最後のリンクから見られます。


この記事の書き方について

この記事はAIと一緒に書いています。試したこと・詰まったこと・確かめたことは、すべて私自身の体験です。それを読みやすい形にする作業をAIに手伝ってもらい、公開前に自分で事実を確認しています。

作ったテンプレートはこちら

https://coconala.com/contents_market/pictures/cmv218qig023u9k0g2tjw4smr

コメント

タイトルとURLをコピーしました