

標題の件、Google Apps Script稼働した時に下書きメール機能でエラーが出る事象についてお伺いいたします。

現在、あるスプレットシート（同じ作りが複数あります）にボタンを追加して、押下するとGmailの下書きに本文が添えられるスクリプトを組んでいます。

その中で、ボタンを押下しても実行中のまま、下書きメールが作成されないシートが複数あることが発生しました。

具体的には、特定のファイルにおいてA1セルにあるボタン「下書きメール作成」を押下したものの、「スクリプトを実行しています」の画面から遷移しません。  
（本来でしたら、実行後に下書きメールがGmailに自動的に格納される運用です）

[![画像の説明をここに入力](https://i.stack.imgur.com/CJ6Mt.png)](https://i.stack.imgur.com/CJ6Mt.png)

スクリプトの内容を調べたところ、対象のシートに「このスプリクトは、2023/03/30にRhinoからV8ランタイムに正常に移行されました」と表示され、実行するとエラーが出てしまう状況です。

[![画像の説明をここに入力](https://i.stack.imgur.com/Z4Sdk.png)](https://i.stack.imgur.com/Z4Sdk.png)  
[![画像の説明をここに入力](https://i.stack.imgur.com/YDINe.png)](https://i.stack.imgur.com/YDINe.png)

スプレットシートの詳細は、下記になります。

[![画像の説明をここに入力](https://i.stack.imgur.com/pk9BL.png)](https://i.stack.imgur.com/pk9BL.png)

また、Chome V8ランタイムを無効にしようとしてもエラーが出ます。

[![画像の説明をここに入力](https://i.stack.imgur.com/wZmeu.png)](https://i.stack.imgur.com/wZmeu.png)

尚、日付はシートによっては異なっています。  
また、スプレットシートによっては、通常通りログが実行できます。

原因としては、スクリプトのバージョンアップに伴って機能しなくなったと考えられます。  
対象のシートは2017年11月に作成されたものですが、スクリプトは1度も手動で更新したことはございませんでした。

つきましては、このスクリプトを再度使用できるための解決方法をご教授いただくことは可能でしょうか？

以上、よろしくお願いします。


CC BY-SA 4.0
2023-05-18T09:03:21.927
94895
2023-05-19T01:26:22.813
2023-05-19T01:26:22.813
3060
58352
question
google-apps-script google-spreadsheet gmail
Google Apps Scriptでの下書きメール機能エラー関わる解決策について


単に「エラーが表示された」で終わらせず、エラーの内容を読む (理解しようとする) ところから初めてみてください。

* * *

#### 1点目

エラーに "ライブラリ (ID SpreadFunction) がありません。"
と表示されていますが、`SpreadFunction.SelectLastRow()` というメソッドはドキュメント等に見当たりません。

下書きとは無関係に見えるので、いったんこの記述を削除してみるのが一つの方法です。

#### 2点目

「下書き」の方も `DraftMail.CreateDraftMail()` と記述されていますが、こちらもドキュメントを調べてみると現状は以下の通り
`GmailApp.createDraft` のようです。

<https://developers.google.com/apps-script/reference/gmail/gmail-
app?hl=ja#createDraft(String,String,String)>

> `createDraft(recipient, subject, body)`
>
> メールの下書きを作成します。メールのサイズ（ヘッダーを含む）は割り当て制限されます。
[code]

>     // The code below creates a draft email with the current date and time.
>     var now = new Date();
>     GmailApp.createDraft("mike@example.com", "current time", "The time is: "
> + now.toString());
>  
[/code]


CC BY-SA 4.0
2023-05-18T12:08:53.540
94899
2023-05-18T12:08:53.540
3060
94895
answer