アプリ版:「スタンプのみでお礼する」機能のリリースについて

GASで以下のプログラムを実行しましたところ、
TypeError: Cannot read property '0' of undefined
が出てしまいました。

//作成途中なので変数定義のみ
function sendform(currentRangeValues){
var date = currentRangeValues[0];
var time = currentRangeValues[1];
var pref = currentRangeValues[7];
var name = currentRangeValues[5];
}

undefinedと出ているのですけれど、配列の数字に定義など必要なのでしょうか?

A 回答 (4件)

No.3です。

ちょっとミスりました。
myFunction1 ~ myFunction3 を実行しても、エラーは出ませんね。

function myFunction1() {
// スプレッドシートを取得する
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();// Container Bound Script
var sheet = spreadsheet.getSheets()[0];// シート数を指定して取得
var currentRangeValues = sheet.getRange(1, 1, 1, 8).getValue();
sendform(currentRangeValues);
}

function myFunction2() {
var currentRangeValues = ['1/28', '11:00', 0, 0, 0, 'Google', 0, 'Tokyo'];
sendform(currentRangeValues);
}

function myFunction3() {
var currentRangeValues = [];
sendform(currentRangeValues);
}

//作成途中なので変数定義のみ
function sendform(currentRangeValues){
var date = currentRangeValues[0];
var time = currentRangeValues[1];
var pref = currentRangeValues[7];
var name = currentRangeValues[5];
Logger.log('date: '+ date);
Logger.log('time: '+ time);
Logger.log('pref: '+ pref);
Logger.log('name: '+ name);
}
    • good
    • 0
この回答へのお礼

ありがとうございます。
function sendform(currentRangeValues){
の使い方が悪かったようでして、教えて頂きましたコードを上から順に使わせて頂いて動かすことが出来ました。

お礼日時:2021/01/28 15:14

function myFunction() {


// スプレッドシートを取得する
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();// Container Bound Script
var sheet = spreadsheet.getSheets()[0];// シート数を指定して取得
var currentRangeValues = sheet.getRange(1, 1, 1, 10).getValue();
}

function myFunction() {
var currentRangeValues = [];
sendform(currentRangeValues);
}

上記のように、currentRangeValues を定義すれば エラー は出ませんね。
    • good
    • 0
この回答へのお礼

ありがとうございます。
No.4のほうへとお返事書かせて頂きました。

お礼日時:2021/01/28 15:12

こんにちは



ご提示の情報の範囲だけからの推測ですけれど・・・

> Cannot read property '0' of undefined
は、「未定義(オブジェクト)の'0'プロパティは参照できない」ってことなので、currentRangeValues に有効な値が渡されていないことが推測されます。

関数の呼び出し側で、適切な引数を与えていないのではないでしょうか?
(変数名の綴りや、大文字小文字の間違え等はありませんか?)
    • good
    • 0
この回答へのお礼

ありがとうございます。
function sendform(currentRangeValues){
のcurrentRangeValuesが悪さしておりました…

お礼日時:2021/01/28 15:11

ゼロとオーを間違えてない?

    • good
    • 0
この回答へのお礼

ありがとうございます。
テキストエディタ上でコードを書いて(保存して)それをブラウザに貼り付けておりますので、文字の間違いとかは無さそうです。

お礼日時:2021/01/28 15:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています