マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
AIツール実験室
2023.12.20
【AIツール実験室】Gmail効率化ツール「 Gmailリスト出力 くん📧」
コンテンツ
はじめに
ごあいさつ
日本全国の「Gmailが溜まっちゃって大変すぎる」というみなさま、
おつかれさまです。
【おすすめYouTube動画】ChatGPTにプレイさせる「Detroit: Become Human」
■名作アドベンチャーゲーム「Detroit: Become Human」とは
・インタラクティブドラマ+アドベンチャーゲーム
・2018年 PlayStation4でリリース
・他プラットフォームにも展開
・舞台設定=2038年のデトロイト
・「高度に発展した人工知能を持つアンドロイド」が「人間」と共存している世界
・プレイヤーの選択が物語の結末に直接影響
・複数のエンディングが存在
・高度なグラフィックス
・リアルなキャラクターモデリング
・現代社会における「技術の進歩」と「倫理的な問題」を考えさせられる作品
■動画概要
・全17本
・およそ14時間ほどの大ボリューム
■選択肢をChatGPTが決定
ChatGPT(チャッくん)にそれまでのストーリーなどを入力して、
選択肢が出てきたら、
ChatGPT(チャッくん)の選択結果を採用して進める
という動画です。
■見どころ
・「AI」(チャッくん)が「高度AIを搭載したアンドロイドたちの物語」をプレイ
・ChatGPTが、そんな回答をするとは事件
・平和主義なチャッくん
・でも、やるときにはやるチャッくん
・緊迫シーンでドキドキするチャッくん
・トークン制限の影響により、言動がおかしくなってしまうチャッくん
・「AI」と「人間」の違いって何なのですかね?
■原作を1回プレイしてから見ていただきたい動画
「Detroit: Become Human」は、普通にとても面白いゲームです。
1回ゲーム版をプレイしてエンディングを迎えた後に、
この動画を見ると、余計におもしろくなります。
■見届けてあげてください
この動画シリーズは、毎週一番楽しみにしていたものでした。
動画のみでも、もちろん面白いので、
年末年始のお休みにでも、
「ChatGPT(チャッくん)が選択した物語の結末」を見届けていただきたい、
マジセミ担当者Aでございます。
■YouTubeプレイリスト
→YouTube →エピゲームズ【AI実況】 →AIにプレイさせるDetroit: Become Human
今回の作戦
今回は、
Googleスプレッドシート上で「GAS」(Google Apps Script)関数として動作する、
Gmail効率化ツール「Gmailリスト出力くん📧」
を作成してみました。
コード部分はコピペするだけで(おそらく)いけるので、
特に「関数とかいじったことがない人向け」の「お試しチュートリアル」として、
「お試し機能実装」を体験していただけるとよろしいかと思います👍
ご注意点
※本記事は、担当者Aの主観により作成されていますので、なにとぞ、そういうことでよろしくお願いします。
※こちらで提供されているコードを利用した結果、「何か大変なこと」になったとしても、一切の責任を負いません。
※「因果応報自業自得自己責任」の「崇高なる精神」でお楽しみください。
ことのあらまし
とある闇の会議にて
舎弟A:「やっぱり、山ほどやってくる請求書の処理は大変ですか?」
とあるアニキ:「そうですね。数も多いので、1個ずつ開いて処理するのは、大変ですね〜。」
舎弟A:「Googleスプレッドシートにリスト表示とか、できるんじゃないですかね?」
できました!
ChatGPT4と打ち合わせしつつ、
動作チェックをしつつ、
小粋なトークを交わしつつ、
動作チェックをした結果・・・
Gmail効率化ツール「Gmailリスト出力くん📧」
が、とりあえず完成しました。
「Gmailリスト出力くん📧」を動かす方法
①Googleスプレッドシートを新規作成します
シートタイトルを「Gmailリスト出力くん📧」などにします。
②「Apps Script」をクリックします
上部メニュー →拡張機能 →Apps Script をクリックします。
③コードエディタが開きます
プロジェクトタイトルを「Gmailリスト出力くん📧」などにします。
④コードをコピペします
コード
// スプレッドシートが開かれたときに自動で実行される関数 function onOpen() { var ui = SpreadsheetApp.getUi(); // スプレッドシートのメニューバーに新しいメニューを追加 ui.createMenu("★効率化ツール★") .addItem("Gmailリスト出力くん📧","importEmailsToSheet") .addToUi(); } // Gmailのメールをスプレッドシートにインポートする関数 function importEmailsToSheet() { var folderName = "Gmailリスト出力くん📧"; var sheet = SpreadsheetApp.getActiveSheet(); // 現在のシートのテキストをクリアする clearSheetText(sheet); // シートの最初の行にヘッダーを追加 sheet.appendRow(["日付", "曜日", "時刻", "送信者名称", "送信者メルアド", "メールタイトル", "メール本文", "添付ファイル01", "添付ファイル02", "添付ファイル03", "添付ファイル04", "添付ファイル05", "添付ファイル06", "添付ファイル07", "添付ファイル08", "添付ファイル09", "添付ファイル10"]); // 指定した名前のフォルダを取得または作成 var folder = getOrCreateFolder(folderName); // フォルダ内のファイルをすべて削除 clearFolder(folder); // Gmailの受信箱内のすべてのスレッドを取得 var threads = GmailApp.getInboxThreads(); for (var i = 0; i < threads.length; i++) { var messages = threads[i].getMessages(); for (var j = 0; j < messages.length; j++) { var message = messages[j]; var date = message.getDate(); // 曜日を取得(日曜日が0、月曜日が1...) var dayOfWeek = ["日", "月", "火", "水", "木", "金", "土"][date.getDay()]; // 送信者の名前とメールアドレスを取得 var senderName = message.getFrom().replace(/ <.*/, ""); var senderEmail = message.getFrom().replace(/.*</, "").replace(/>/, ""); // メールの件名を取得 var subject = message.getSubject(); var body = message.getPlainBody(); var attachments = message.getAttachments(); // 添付ファイルのリンクを生成 var attachmentLinks = attachments.map(function(attachment) { var file = folder.createFile(attachment); var url = file.getUrl(); return '=HYPERLINK("' + url + '", "' + attachment.getName() + '")'; }); // 添付ファイルのリンクを10個の列に分割して配列に格納 var attachmentColumns = new Array(10).fill(""); for (var k = 0; k < attachmentLinks.length && k < 10; k++) { attachmentColumns[k] = attachmentLinks[k]; } // メールの日付と時刻をフォーマット var formattedDate = Utilities.formatDate(date, Session.getScriptTimeZone(), "yyyy/MM/dd"); var formattedTime = Utilities.formatDate(date, Session.getScriptTimeZone(), "HH:mm:ss"); // シートにメールの情報を行として追加 sheet.appendRow([formattedDate, dayOfWeek, formattedTime, senderName, senderEmail, subject, body].concat(attachmentColumns)); } } } // 指定したシートのテキストをクリアする関数 function clearSheetText(sheet) { var range = sheet.getDataRange(); // セルの内容のみをクリアし、書式はそのまま残す range.clearContent(); } // 指定した名前のフォルダを取得または新しく作成する関数 function getOrCreateFolder(folderName) { var folders = DriveApp.getFoldersByName(folderName); // フォルダが既に存在する場合はそのフォルダを、存在しない場合は新たにフォルダを作成 return folders.hasNext() ? folders.next() : DriveApp.createFolder(folderName); } // 指定したフォルダ内のすべてのファイルを削除する関数 function clearFolder(folder) { var files = folder.getFiles(); // フォルダ内のすべてのファイルをゴミ箱に移動 while (files.hasNext()) { files.next().setTrashed(true); } }
コピペした様子
⑤「保存ボタン」をクリックします
⑥スプレッドシートをリロード(ページ再読み込み)します
コードエディタではなく、
スプレッドシートのタブのほうで、
リロード(ページ再読み込み)します。
ちょっと待つと、
上部メニューの一番右に「★効率化ツール★」が表示されます。
⑦「Gmailリスト出力くん📧」を実行します(1回目)
上部メニュー →★効率化ツール★ →Gmailリスト出力くん📧 をクリックします。
⑧認証処理をします
初回実行だけ、認証処理が入ります。
「崇高なる精神」にて、「OK」および「許可」します。
⑨「Gmailリスト出力くん📧」を実行します(2回目)
初回の認証処理で中断されたので、
再度、
上部メニュー →★効率化ツール★ →Gmailリスト出力くん📧 をクリックします。
⑩Gmailがリスト表示されます
しばし時間がかかりますが、
リスト表示されるはずです。
表示されましたか?
⑪見た目を整えておきます
最初の1回だけ、表示を綺麗にしておけば、
フォーマットは維持されます。
「Gmailリスト出力くん📧」機能説明
メール情報取得機能
Gmailの「受信トレイ」に入っているメール情報をリスト出力します。
メール基本情報表示機能
・日付
・曜日
・時刻
・送信者名称
・送信者メルアド
・メールタイトル
・メール本文
添付ファイル表示機能
各メールに添付されているファイルが「10件まで」表示されます。
添付ファイルのリンクをクリックすると、
内容が別タブで表示されます。
※「PDF表示」および「画像表示」については確認しました。
「ReReReReReメール」分割機能
返信に次ぐ返信で、とんでもなく長い「ReReReReReメール」というものがあります。
そのようなメールに含まれるメールを1件ずつ分割して、
1行ごとに表示してくれます。
意図してなかった機能
特に意図した機能ではなかったので、
発見した時には驚きました。
どういう仕組みなのかは分かりませんが、
もしかすると、便利かもしれませんね。
添付ファイルのワークフォルダ保存機能
Googleドライブのルート(一番上の階層)に、
「Gmailリスト出力くん📧」というワークフォルダを作成します。
このフォルダの中に、すべての添付ファイルが一次保存されます。
フォルダごと削除してしまっても大丈夫です。
クリア後のエンドコンテンツ
複数のアカウントを切り替えて使っている場合などで、
うまく動かない場合があるかもしれません。
生成AIにコードを突っ込んでみることで、
「各種エンドコンテンツ」をお楽しみいただけます。
・なかなか進まないトラブルシューティング
・果てなきコード改造
・終わりなき機能追加 など
終わりの会
「GAS」(Google Apps Script)を使えば、
生成AIとAPIで繋げてAI能力を使った自動化など、
さまざまな効率化機能の実装が可能になるはずです。
コードの構文などが分からなくても、
「生成AIとの膝を突き合わせたお話し合い」で、
コードができてしまいます。
おびただしくめんどいルーチン作業などがある場合、
1回自動化関数を作成すると、
「驚きの楽ちん作業」になれるかもしれません。
Excelでも、同様の自動化は可能なので、
みなさま、
なるべく楽をしてまいりましょう👍
【お知らせ】AI関連 記事リストポータル
こちらのページでは、
【ChatGPTプラグイン探訪】および【AIツール実験室】の記事一覧を参照できます。
【お知らせ】「マジセミ」のご紹介
「マジセミ」では、日々、多くのIT関連セミナーを開催しています。
多くのセミナーの中から「ご自身のスキルやビジネスを強化できるセミナー」を見つけて、ぜひ1度、参加してみてください。
マジセミ関連プラットフォーム
プラットフォーム | 説明 | URL |
---|---|---|
マジセミ | マジセミで実施されるさまざまなセミナーの開催情報を確認できます。 「IT関連セミナー」「製造業関連セミナー」など、ご自身のビジネスを強化できるセミナーを検索できます。 |
→majisemi.com |
マジセミサービス | 「セミナーを開催したい方」向けの情報を確認できます。 トライアルからの利用が可能です。 |
→majisemi.com →service |
YouTubeマジセミ動画① IT製造業DX |
「マジセミ」で開催している年間1000回のウェビナーの中から、「IT業界と製造業DX」の最新トレンドをサマリー動画でお届けします。 | →youtube.com →@majisemi |
YouTubeマジセミ動画② ITセキュリティ |
ITセキュリティの最新トレンドに関するものを集めてサマリー動画でお届けしています。 | →youtube.com →@majisemisecurity |
マジセミドライブ | 「AIツール実験室」などの、IT関連コンテンツを紹介しています。 | →majisemi.com →topics |
マジセミFacebook | 毎日「マジセミ関連情報」や「IT関連ニュース」などを紹介しています。 | →facebook.com →OSSNews |
マジセミX(Twitter) | マジセミFacebookと同様に投稿しています。 | →twitter.com →Majisemi_it |
マジセミInstagram | マジセミFacebookと同様に投稿しています。 | →instagram.com →majisemi_it/ |
マジセミThreads | マジセミFacebookと同様に投稿しています。 | →threads.net →@majisemi_it |
マジセミBluesky | マジセミFacebookと同様に投稿しています。 | →majisemi.bsky.social |
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク2位🏆
【AIツール実験室】楽曲作成ツール「 Suno AI 」〜AI生成ミュージックフェス〜 - 🏆ランク3位🏆
【OSS情報】ディスクイメージング(クローニング)ツール「 Clonezilla 」 - 🏆ランク4位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク5位🏆
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選 - 🏆ランク6位🏆
【無料オープンソース】「 リモートアクセス 」ツールまとめ5選 - 🏆ランク7位🏆
【無料で使える】「 バックアップ 」ツールまとめ - 🏆ランク8位🏆
【無料で使える】「 マルウェア 」対策ツールまとめ - 🏆ランク9位🏆
【無料で使える】「 エンドポイントセキュリティ 」ツールまとめ - 🏆ランク10位🏆
【ツール紹介】無料オープンソース「 ログ管理 ツール 」まとめ3選
おすすめの記事
ChatGPT探訪
2024.05.07
【ChatGPT探訪】「 無限議論 」〜最強スタンド考察〜🤔
マジセミSNSに投稿した 【担当者A】の「 無限議論 」〜最強スタンド考察〜💬 を記事化したものです。 ChatGPTに課金していないみなさんにも、 AI同士の議論をお楽しみいただけます👍 ※原稿テキストを放り込むだけで、 ジョジョ風イラストを作成してしまう生成AIがすごくないですか?