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に触れつつ、税理士業をしました。

