2
0

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で作業効率化!

Posted at

はじめに

私は業務で Google Drive を良く使用します。
ファイルは報告や連絡など様々ですが、発注に使用される事もあります。
スプレッドシートに数量を〆切時間までに打ち込むというものですが、
限定数量があるものは早い者勝ちです。
そこで新規スプレッドシートが追加されたらメールで通知する様にしたいです。

しかし、私はコードが書けません…
そんな時には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を用いて作業効率化を試みました。
今回ChatGPTを利用してみて感じたことは、まるで超優秀な部下がササッと仕事をこなしてる様でした。ビジネスにおいても、プライベートにおいても、この「優秀な部下」を上手く使わない手は無いですね。必ず活用すべきだと思います。
これからもChatGPT活用方法を模索し、作業効率化に努めていきます。
最後まで読んでいただきありがとうございました。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?