6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「待ってたやつ、入ったよ!」フォルダに新規ファイル追加でメール通知!ChatGPT生成GASで作業効率化!

Last updated at Posted at 2024-10-22

はじめに

私は業務で Google Drive を良く使用します。
ファイルは報告や連絡など様々ですが、発注に使用される事もあります。
その中でもスポット商品の発注は時間的拘束が強めです。
仕様はスプレッドシートに欲しい商品の数量を〆切時間までに打ち込むというものです。
投函されるとバイヤーからメールが配信されますが、私個人に支給された仕事用のメールアドレスはありませんので、店舗のアドレスにメールが送信されます。
その為、投函されたかどうかはパソコンで店舗アカウントのメールを確認するかGoogle Driveを直接閲覧するしかありません。うっかり忘れてしまって〆切を過ぎてしまったり、限定数量があるものは早い者勝ちなので発注を逃してしまう事もあります。

そこで、新規スプレッドシートが指定フォルダに追加されたら
私のスマホにメールで通知する様にしたいです。
新規ファイルメールGAS.png

しかし、私はコードが書けません…
そんな時にはChatGPTに書いてもらっちゃいましょう。

使用ツール

・Google Drive
・Google Apps Script(GAS)
・ChatGPT

作成方法

ChatGPTでコードを作成

ChatGPTに下記のプロンプトを入力しました。

スクリーンショット (32).png

それに対するChatGPTが作成したコードはこちらです。

ChatGPT作成コード
function notifyNewFile() {
  var folderId = "YOUR_FOLDER_ID"; // 監視したいフォルダのIDに置き換えてください
  var folder = DriveApp.getFolderById(folderId);
  var files = folder.getFiles();
  
  // 新しいファイルを記録するためのプロパティストア
  var properties = PropertiesService.getScriptProperties();
  var processedFiles = properties.getProperty('processedFiles');
  var processedFileIds = processedFiles ? processedFiles.split(",") : [];

  while (files.hasNext()) {
    var file = files.next();
    var fileId = file.getId();

    // ファイルIDがリストにない場合、新しいファイルとして認識し、メール送信
    if (processedFileIds.indexOf(fileId) === -1) {
      var emailAddress = "recipient@example.com"; // 送信先のメールアドレスに置き換えてください
      var subject = "新しいファイルが追加されました: " + file.getName();
      var message = "フォルダに新しいファイルが追加されました: " + file.getName() + "\nリンク: " + file.getUrl();
      
      // メール送信
      MailApp.sendEmail(emailAddress, subject, message);
      
      // ファイルIDをリストに追加
      processedFileIds.push(fileId);
    }
  }

  // 更新したファイルIDリストを保存
  properties.setProperty('processedFiles', processedFileIds.join(","));
}

Google Drive フォルダ ID を確認

次は監視したいフォルダの ID を取得します。

今回は実験導入の為、私のフォルダで設定します。


指定のファイル(今回はマイドライブの「新しいファイルを入れるフォルダ」)を開き、
スクリーンショット (30).png


URLの中からフォルダ ID を取得します。

スクリーンショット (33).png


Google Apps Script を作成

指定のファイル内の「+ New 」をクリックし、

スクリーンショット (34).png


「 More 」の「 Google Apps Script 」を選択します。

スクリーンショット (35).png


別のタグで Apps Script が立ち上がります。
プロジェクト名を任意の名前に変更します。
スクリーンショット (36).png

設定変更

ChatGPTが作成したスクリプトを貼り付け、

YOUR_FOLDER_ID を先ほど取得した監視するフォルダのIDに変更します。
スクリーンショット (40).png

emailAddress = の後の recipient@example.com
メールを受け取りたいアドレスに変更します。
スクリーンショット (41).png

Save project を押して保存し、Run でこのnotifyNewFile関数を実行します。
スクリーンショット (42).png

Run を押した後に認証を求められます。
権限を確認しアカウントを選択すると注意喚起が出てきます。
下記の様に対応してください。
スクリーンショット (45).png

メールが送信されました。
スクリーンショット (47).png


トリガーの設定

左側にあるメニューから Triggers を選択します。
スクリーンショット (49).png

次画面で「create a new trigger」か「+ Add Trigger」を選択します。
スクリーンショット (50).png

イベントソースは時間駆動型を選択し、
「時間ベースのトリガーの種類を選択」は、分タイマーを選択します。
時間の間隔は毎分にしました。
保存を押して設定完了です。
スクリーンショット (51).png




フォルダに新しいファイルを入れてみると…

スクリーンショット (52).png

即座に通知メールが来ました。

スクリーンショット (53).png



おまけ

ChatGPTを使用してスクリプトを作りましたが、その早さにびっくりです。
ChatGPTでもう一つぐらい何か作れないかと思い、ChatGPTで出来る事を検索していたら、「ゲームを作れる」という言葉が目に入ったのでブロック崩しゲームを作ってみました。

スクリーンショット (54).png

スクリーンショット (62).png

そんなに簡単に…1分程であっという間に完成です。
折角なので色々注文をつけてみました。

スクリーンショット (61).png

結果がこちらです。
スクリーンショット (66).png
修正もお手の物ですね…五分程度でこのクオリティは圧巻でした。

最後に

今回はコードを書けない私が、ChatGPTを活用してスクリプトを生成し、
GASを用いて作業効率化を試みました。これにより、わざわざパソコンで確認をする必要が無くなり、10分は効率化できたかと思います。
今回ChatGPTを利用してみて感じたことは、まるで超優秀な部下がササッと仕事をこなしてる様でした。ビジネスにおいても、プライベートにおいても、この「優秀な部下」を上手く使わない手は無いですね。必ず活用すべきだと思います。
これからもChatGPT活用方法を模索し、作業効率化に努めていきます。
最後まで読んでいただきありがとうございました。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?