質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

1499閲覧

GASでGmailで受信した内容をスプレッドシートに転記したい

igarashi.t

総合スコア0

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2021/10/12 09:23

前提・実現したいこと

GASにてGmailで受信した内容をスプレッドシートに転記したいのですが、下記のようなエラーが出てしまいます。
45行目以降でエラーが出ているようなのですが、特定できず、どなたかご助言いただけると幸いです。
※「ラベル名」はダミーで入れています

エラー ReferenceError: sheet is not defined Toiawase @ コード.gs:45

該当のソースコード

function Toiawase(){
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var objSheet = objSpreadsheet.getSheetByName("お問い合わせ");//シート名をここに入力

//GMAILから取得するものを指定
var start = 0;
var max = 500;
var threads = GmailApp.search('newer_than:1d label:ラベル名',start,max);

for(var n in threads){
var thd = threads[n];
var msgs = thd.getMessages();
for(m in msgs){
var msg = msgs[m];
var body = msg.getBody();
var date = msg.getDate();
var date_D = new Date(date.getFullYear(),date.getMonth(),date.getDate(),0,0,0);
var id = msg.getId()

var bodys= body.replace('貴社名:','') .replace('お名前(漢字):','') .replace('お名前(フリガナ):','') .replace('メールアドレス:','') .replace('メールアドレス(確認):','') .replace('電話番号:','') .replace('部署名:','') .replace('役職名:','') .replace('貴社URL:','') .replace('ご希望用途:','')

;

 // 改行を使って配列化する      var ary = bodys.split("\n"); var office = ary[12].substring(0).replace('\r','').replace('<br />',''); var name = ary[13].substring(0).replace('\r','').replace('<br />',''); var name_furi = ary[14].substring(0).replace('\r','').replace('<br />',''); var email = ary[15].substring(0).replace('\r','').replace('<br />',''); var email_kaku = ary[16].substring(0).replace('\r','').replace('<br />',''); var tel = ary[17].substring(0).replace('\r','').replace('<br />',''); var busho = ary[18].substring(0).replace('\r','').replace('<br />',''); var yakushoku = ary[19].substring(0).replace('\r','').replace('<br />',''); var url = ary[20].substring(0).replace('\r','').replace('<br />',''); sheet.getRange(row,1).setValue(date); sheet.getRange(row,2).setValue(office); sheet.getRange(row,3).setValue(name); sheet.getRange(row,4).setValue(name_furi); sheet.getRange(row,5).setValue(email); sheet.getRange(row,6).setValue(email_kaku); sheet.getRange(row,7).setValue(tel); sheet.getRange(row,8).setValue(busho); sheet.getRange(row,9).setValue(yakushoku); sheet.getRange(row,10).setValue(url); row++ }

Utilities.sleep(1000);
}
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

エラーメッセージのとおり、変数sheetの宣言が見当たりませんね。

変数sheetは提示コードの

sheet.getRange(row,1).setValue(date); sheet.getRange(row,2).setValue(office); sheet.getRange(row,3).setValue(name); sheet.getRange(row,4).setValue(name_furi); sheet.getRange(row,5).setValue(email); sheet.getRange(row,6).setValue(email_kaku); sheet.getRange(row,7).setValue(tel); sheet.getRange(row,8).setValue(busho); sheet.getRange(row,9).setValue(yakushoku); sheet.getRange(row,10).setValue(url);```

で使われています。もしかしてobjSheetなのではないですか?

投稿2021/10/12 09:27

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

igarashi.t

2021/10/12 09:32

itagagakiさん 早速のコメントありがとうございます! 対応が間違っているかもしれないですが、「Sheet」を「objSheet」に変更しても同様のエラーが出てしまいました、、 エラー ReferenceError: objsheet is not defined Toiawase @ コード.gs:45 ```sheet.getRange(row,1).setValue(date); sheet.getRange(row,2).setValue(office); sheet.getRange(row,3).setValue(name); sheet.getRange(row,4).setValue(name_furi); sheet.getRange(row,5).setValue(email); sheet.getRange(row,6).setValue(email_kaku); sheet.getRange(row,7).setValue(tel); sheet.getRange(row,8).setValue(busho); sheet.getRange(row,9).setValue(yakushoku); sheet.getRange(row,10).setValue(url);```
itagagaki

2021/10/12 09:35

objsheet ではなく objSheet ですよね。大文字と小文字は区別されます。
igarashi.t

2021/10/12 12:14

>objsheet ではなく objSheet ですよね。大文字と小文字は区別されます。 →おっしゃる通り小文字でした、、ご指摘感謝します。 その後以下に変更したのですが、今度は「row」が定義されないとのこと。 「エラー ReferenceError: row is not defined」 例えば以下ですと、 sheet.getRange(row,1).setValue(date); 指定のシートの1列目に日付を入れるという指示をしているのですが、定義が異なるようですね、、 function Toiawase(){ var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var objSheet = objSpreadsheet.getSheetByName("お問い合わせ");//シート名をここに入力 //GMAILから取得するものを指定 var start = 0; var max = 500; var threads = GmailApp.search('newer_than:1d label:タレントストック問い合わせ',start,max); for(var n in threads){ var thd = threads[n]; var msgs = thd.getMessages(); for(m in msgs){ var msg = msgs[m]; var body = msg.getBody(); var date = msg.getDate(); var date_D = new Date(date.getFullYear(),date.getMonth(),date.getDate(),0,0,0); var id = msg.getId() var bodys= body.replace('貴社名:','') .replace('お名前(漢字):','') .replace('お名前(フリガナ):','') .replace('メールアドレス:','') .replace('メールアドレス(確認):','') .replace('電話番号:','') .replace('部署名:','') .replace('役職名:','') .replace('貴社URL:','') .replace('ご希望用途:','') ;  // 改行を使って配列化する      var ary = bodys.split("\n"); var office = ary[12].substring(0).replace('\r','').replace('<br />',''); var name = ary[13].substring(0).replace('\r','').replace('<br />',''); var name_furi = ary[14].substring(0).replace('\r','').replace('<br />',''); var email = ary[15].substring(0).replace('\r','').replace('<br />',''); var email_kaku = ary[16].substring(0).replace('\r','').replace('<br />',''); var tel = ary[17].substring(0).replace('\r','').replace('<br />',''); var busho = ary[18].substring(0).replace('\r','').replace('<br />',''); var yakushoku = ary[19].substring(0).replace('\r','').replace('<br />',''); var url = ary[20].substring(0).replace('\r','').replace('<br />',''); objSheet.getRange(row,1).setValue(date); objSheet.getRange(row,2).setValue(office); objSheet.getRange(row,3).setValue(name); objSheet.getRange(row,4).setValue(name_furi); objSheet.getRange(row,5).setValue(email); objSheet.getRange(row,6).setValue(email_kaku); objSheet.getRange(row,7).setValue(tel); objSheet.getRange(row,8).setValue(busho); objSheet.getRange(row,9).setValue(yakushoku); objSheet.getRange(row,10).setValue(url); row++ } Utilities.sleep(1000); } }
itagagaki

2021/10/12 12:17

このコードは切り貼りですか?あなたが書いたものではなく。 プログラミング上の課題は一緒に考えることができますが、切り貼りコードが動かないという相談なら受けられません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問