さまの以下の記事をご覧いただければと思います!https://dippeople.dip-net.jp/8573/本ブログでは、上記記事とは異なる箇所と、私がアレンジしたソースコードを公開します。Script」をクリックしてGASのエディタを開きます。2以下のコードを入力エディタに以下のコードをコピペしてください。SpreadsheetApp.getUi().alert("実行完了!\nメールボックスの「下書き」を確認してください。\nPDF添付も忘れずに!");}3ご請求書を送る際に、CCが必要なメールアドレスになるよう、コードを修正します。以下の箇所を探して、自分のメールアドレスなどを設定してみてください~。"xxxxxxxxxxxxxxxx@example.com";上記のコードの修正が完了したら、任意の名前でGASのプロジェクトを【保存(Ctrl+S)】してください。プログラムの動作を確認するGoogleスプレッドシートを再読み込みすると、メニュータブに「下書き一括作成」が表示されます。「下書き一括作成」>「実行」をクリックして、GASを実行します。初回のみGmailとの連携を求められますので、承認してください。実行完了すると、メッセージボックスが表示されるので【OK】をクリックします。メッセージボックスのイメージGmailの下書きボックスを開き、リストの件数分のメールの下書きができていることを確認します。メールの件名と本文の特定のキーワードが置換され、宛先やCCのアドレスもリストの内容に沿ってそれぞれ入力されていると思います。あとはお送りするご請求書のPDFファイルなど、メールに添付する資料を忘れないようにすればOKです!chatGPTさんによるコード解説(読みたい人だけどうぞ)このコードは、Googleスプレッドシート上で特定の形式のデータを入力した場合に、Gmailの下書きを一括で作成する機能を実装したものです。具体的には、スプレッドシート上の「下書き作成ツール」というシートに、送信先やタイトル・本文に必要な情報を入力すると、その内容を元にGmailの下書きを一括で作成します。メールアドレスはCCで設定することができ、複数のアドレスを設定することもできます。以下、コードの詳細な解説です。onOpen()スプレッドシートを開いたときに実行される処理を定義する関数です。この関数では、メニューバーに「下書き一括作成」という項目を追加する処理を行っています。SpreadsheetApp.getActive();アクティブなスプレッドシートを取得するためのコードです。}];追加するメニュー項目の名前と、実行される関数を指定しています。この場合は「実行」という名前で、createEmailDraft()という関数を実行するようになっています。menuItems);addMenu()メソッドを使って、メニューバーに「下書き一括作成」を追加する処理を行っています。createEmailDraft()Gmailの下書きを一括で作成するための関数です。この関数では、下書きを作成するために必要な情報を取得し、ループ処理を行ってGmailの下書きを一括で作成します。SpreadsheetApp.getActive();アクティブなスプレッドシートを取得するためのコードです。spreadsheet.setActiveSheet(spreadsheet.getSheetByName("下書き作成ツール"));「下書き作成ツール」という名前のシートをアクティブにしています。このシートには、Gmailの下書きを作成するために必要な情報が入力されています。SpreadsheetApp.getActiveSheet();アクティブなシートを取得するためのコードです。"xxxxxxxxxxxxxxxx@example.com";CC用のメールアドレスを指定するためのコードです。複数のメールアドレスを設定する場合は、カンマで区切って複数のメールアドレスを指定することができます。sheet.getDataRange().getLastRow();getDataRange()メソッドを使って、シートに入力されているデータの範囲を取得しています。getLastRow()メソッドを使って、データが入力されている最終行の行番号を取得しています。{6行目から最終行までループ処理を行うためのコードです。letを使ってiを宣言しています。ループの終了条件はlastRowとして、最初の行を表す1から5行目はスキップしています。}Gmailの下書きを一括で作成する処理を行うためのコードです。try-catch構文を使って、エラーが発生した場合にはログにエラーを出力し、その行の処理をスキップします。6).getValues()[0];ループで処理する行のデータを取得しています。getRange()メソッドを使って、行の範囲を取得しています。getValues()メソッドを使って、範囲内のセルの値を二次元配列として取得しています。その後、配列の0番目を取得することで、一次元配列としてデータを取得しています。...取得したデータをそれぞれの変数に格納しています。配列のインデックス番号で、各セルの値を取得しています。month);メールの件名を作成するためのコードです。getRange()メソッドを使って、2行目の3列目のセルの値を取得しています。getValue()メソッドを使って、セルの値を取得しています。replace()メソッドを使って、テンプレート内の「{月}」を、取得したmonthの値に置換しています。}メールの本文に挿入する日付を、日本時間に変換するためのコードです。Utilities.formatDate()メソッドを使って、日付を日本時間に変換しています。変換が正常にできなかった場合は、ログにエラーを出力してその行の処理をスキップします。...メールの本文を作成するためのコードです。getRange()メソッドを使って、3行目の3列目のセルの値を取得しています。getValue()メソッドを使って、セルの値を取得しています。replace()メソッドを使って、テンプレート内の{月}、{会社名}、{部署名}、{お名前}、{date}を、それぞれ取得した値に置換しています。});Gmailの下書きを作成するためのコードです。createDraft()メソッドを使って、下書きを作成しています。CC}でCCのメールアドレスを指定しています。SpreadsheetApp.getUi().alert("実行完了!\nメールボックスの「下書き」を確認してください。\nPDF添付も忘れずに!");処理が完了したことを通知するためのコードです。ダイアログボックスを表示して、処理が完了したことをユーザーに通知しています。まとめ本記事では、GASを使って、毎月の請求書を送付するためのメール下書きを自動作成するソースコードをシェアしました。みなさんも身近にプログラミングを取り入れて、業務効率化しませんか?chatGPTも登場し、要件さえ整理できれば簡単に業務効率化を行うことができる場合があります。プログラミングの基礎を学ぶと、プログラムの基礎や組み立て方がわかるようになります。具体的なエラー処理の指定なども含めて、chatGPTさんにコードを書いてもらうことができるでしょう。未経験の主婦が学んだ方法はMovieHacks【感想・レポート】初めての献血@海老名献血ルームこの記事を書いた人まなてぃ訪問いただきありがとうございます。元IT企業の人→フリーランス→派遣OL&主婦。ブログを書いています。最近はデータ集計や分析のお仕事をしています。このブログでは、主婦(主夫)さんに向けた、ライフスタイルに関すること、自身のスキルアップのことなど、ざっくばらんに発信できればいいなと思っています。よろしければご覧ください。現在はデータ集計や業務効率化などのお仕事をしています。食品宅配サービスにハマり中。