GAS超入門:Gmailの特定メールを自動でスプレッドシートに記録

GASは非常に便利です。
「Gmailから特定のメールを毎日探す」ということもサクッとできます。

今回は「GAS超入門:Gmailの特定メールを自動でスプレッドシートに記録」というお話です。

【税理士・廣瀬充について】
廣瀬充のプロフィール
事務所ホームページ
facebook(友達申請をする際は、メッセージをお願いします。)
無料メルマガ「ひとり経営ライフログ」

【仕事のご依頼】
税務顧問
スポット相談
メール相談
執筆のご依頼

【本の出版】
中小企業経営者のための融資超入門(Kindle本)

目次

特定のメールをリスト化

GASを活用することで、毎日届く特定のメールをリスト化できます。

私はこの方法を使って、
自分が配信しているメルマガを日付とタイトル付きでリスト化しています。

これをやっておくと、

  • どの日にどんな内容を書いたかが一目で分かる
  • 過去のテーマを振り返りやすい

といったメリットがあります。

また、自分のメルマガだけでなく、
愛読しているメルマガを対象にするのもおすすめです。

受信トレイを探し回るのではなく、スプレッドシートを開けば一覧で見られる。
この小さな仕組みが、日々の情報整理をかなりラクにしてくれます。

Googleスプレッドシートの準備とコードの記載

まずは、データを蓄積するための箱をつくりましょう。

1行目の見出しに「日付」「タイトル」と入力します。

スプレッドシートのメニューから「拡張機能」→「Apps Script」を選択。

「myFunction() {」と「}」の間に、コードを書いていきます。

function logNewsletter() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // 1. Gmail検索
  const searchQuery = 'subject:"【ひとり経営ライフログ"';
  const threads = GmailApp.search(searchQuery, 0, 1);
  
  if (threads.length > 0) {
    const message = threads[0].getMessages().pop();
    const fullSubject = message.getSubject(); // 件名を変数に入れる
    const date = message.getDate();           // 日時を変数に入れる
    
    // 2. タイトルの加工(【 より前の文字だけを抽出)
    const shortSubject = fullSubject.split('【')[0].trim();
    
    // 3. スプレッドシートへ書き込み
    sheet.appendRow([date, shortSubject]);
    
    console.log("記録完了: " + shortSubject);
  } else {
    console.log("該当するメールが見つかりませんでした。");
  }
}

2行目

const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

→現在開いているスプレッドシートの、アクティブなシートを取得

5行目~

const searchQuery = 'subject:"【ひとり経営ライフログ"';
const threads = GmailApp.search(searchQuery, 0, 1);

→Gmailの中から、特定の条件に合うメールを検索(「0,1」は「検索結果の0番目(最新)から数えて、1件だけ取得」という意味です。)
5行目の「subject:”【ひとり経営ライフログ”」の「【ひとり経営ライフログ」の部分に、
自分が取得したいメールのタイトルを入れましょう。

8行目

if (threads.length > 0) {

→検索結果の数が、0より大きいかを確認するため。
検索をして、「対象がない」とエラーにならないようにします。

9行目

const message = threads[0].getMessages().pop();

→threads[0]:検索で見つかった1番新しいスレッドを選ぶ。
→getMessages():そのスレッドの中のメールをすべて取得。
→.pop():その中から1番最後の1通だけ取り出す。

10行目~

const fullSubject = message.getSubject();
const date = message.getDate();

→「件名」と「日時」を変数(fullSubjectとdate)に入れる。

14行目

 const shortSubject = fullSubject.split('【')[0].trim();

→タイトルの「【」の前だけを取り出す。
(メルマガのタイトルだけを取得する際に、「【」より前にタイトルを記載しているため)

17行目

sheet.appendRow([date, shortSubject]);

→スプレッドシートの新しい行に追加。

後は「Ctrl」+「S」で保存して、「Ctrl」+「R」で実行をしてみましょう。

こういった画面がでたら、「権限を確認」→「詳細」→「無題のプロジェクト(安全ではないページ)に移動」→✅をいれて「続行」です。

プログラミングは1歩1歩が大切

今の時代、プログラミングは生成AIを活用すれば、
サラッと書けます。
それこそ驚くほどのスピードで。

ただ、コードを生成しても意味が分からないのはどうかなと。

私がおすすめしているのは、生成AIに聞きながら書いてみるということ。
1行1行書きながら進めることで、理解が深まります。

生成AIに質問する練習にもなるので、一石二鳥です。

【仕事のご依頼】
税務顧問
スポット相談
メール相談
執筆のご依頼

【本の出版】
中小企業経営者のための融資超入門(Kindle本)


【ログ帳】
昨日は、朝は発信を中心に。
その後は、Kindle本(執筆と出版)を。
午後は、GASに触れつつ、税理士業をしました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

廣瀬 充(ひろせ みつる)

自由に働くための土台づくりを、時間・習慣・おカネの視点から発信するひとり税理士。

独立後に実感したのは、
成果の差は才能よりも「日々の積み重ね」で決まるということ。
早起き、勉強、運動、発信。
派手さはないが、確実に差がつく行動を重視。

おカネは会社の生命線。
利益が出ていても、手元におカネがなければ不安は消えない。
融資や資金繰りは、経営を守るための「守り」であり、挑戦するための「余白」。
困ってから借りるのではなく、余裕があるときに借りる考え方を大切にしている。

税理士/銀行融資診断士/元経理マン。

■著書
→中小企業経営者のための融資超入門(Kindle出版)。
→資金繰りを考えなくていい会社のつくり方(Kindle出版)。
大分県由布市在住。
1988年10月1日生まれ。
ブログ毎日更新。
メルマガ毎日更新。

妻と5人の子どもがいる、にぎやかな家庭。

詳しくはプロフィール

目次