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

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

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

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1616閲覧

GASのgetRangeメソッドのエラーについて

onigiriumai

総合スコア1

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/05/16 08:06

編集2021/05/16 08:41

月ごとのKPIを、Slackに通知するスクリプトを作成してまして、その前段のデータ取得のところで躓いております。

下記の表はgetRangeで取得したイメージで、シート全体から一部範囲を切り抜き、そこからさらにチームごとに、最後の列に記入されている数字をgetValueメソッドで取り出したいです。

|チーム名|4月|5月|6月|7月|8月|
|:--|:--:|--:|
|hoge|50|60|70|
|fuga|50|60|70|

この状態でスクリプトを実行すると、下記のhogeteamのところでエラーになりますが、原因がわからず困っております。

The parameters (number,number) don't match the method signature for SpreadsheetApp.Range.getValue.

クラスによって、getValueメソッドで使える呼び出し方が異なることは調べてなんとなくわかったものの、(number,number)でこれが発生することが理解できておりません。

function getKpi() { var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシート(book) var sheet = activeSpreadsheet.getSheetByName("KPI"); // シート取得 var kpi = sheet.getRange('XX:XX'); //KPIの値を取得 Logger.log(kpi) var lastClmn = kpi.getNextDataCell(SpreadsheetApp.Direction.NEXT).getColumn(); //最終列を取得 Logger.log(lastClmn) //KPIのセル取得 var hogeteam = kpi.getValue(5,lastClmn) var fugateam = kpi.getValue(6,lastClmn) };

分かりづらい説明で恐縮ですが、ご教示ください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

getValueって引数なしで、範囲の左上のセルの値を取るのではないでしょうか。
getValuesで返される2次元配列を行と列で参照するようにしたらよいのかなと思います。

Class Range | Apps Script | Google Developers

投稿2021/05/16 08:24

編集2021/05/16 08:25
itagagaki

総合スコア8402

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

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

onigiriumai

2021/05/16 08:52

ご回答ありがとうございます。 var hoge = kpi.getValues(5,lastClmn).getValue() みたいなことでしょうか? これでもgetValuesのほうが同様のエラーになってしまいます…
itagagaki

2021/05/16 08:56

var values = kpi.getValues(); value = values[row][column]; ということです。
onigiriumai

2021/05/16 11:14 編集

ありがとうございます。 記載いただいたとおりにコードを変更したところ、ひとまずエラーは解消されたのですが、たとえば、5行目の最終列のセルの値を取得したい場合どうすればいいんでしょうか?そのまま数字を入れるとnullになってしまいます
itagagaki

2021/05/16 11:20

上のコードでvalue[0][0]とすると、kpi(つまりgetRangeした範囲)のなかでの左上のセルの値になるんだと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問