回答編集履歴

7

2023/01/19 16:00

投稿

退会済みユーザー
test CHANGED
@@ -18,7 +18,11 @@
18
18
  var wordList = [];
19
19
  sheets.forEach(sh => {
20
20
  var lastRow = sh.getLastRow();
21
+
22
+ // データがないシートはスキップ
23
+ if (lastRow > 0) {
21
- wordList = [...wordList, ...sh.getRange(1,1,lastRow,3).getValues()];
24
+ wordList = [...wordList, ...sh.getRange(1,1,lastRow,3).getValues()];
25
+ }
22
26
  })
23
27
  return wordList;
24
28
  }

6

修正

2023/01/19 15:57

投稿

退会済みユーザー
test CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  function replyFromSheet(data) {
27
27
  var replyUrl = "https://api.line.me/v2/bot/message/reply";
28
- var lastRow = sh.getLastRow();
28
+ // var lastRow = sh.getLastRow(); 削除
29
29
 
30
30
  // var wordList = sh.getRange(1,1,lastRow,3).getValues(); // ここを下のように修正
31
31
  var wordList = getWordListFrom(wordListSheets));

5

 

2023/01/19 15:56

投稿

退会済みユーザー
test CHANGED
@@ -2,7 +2,7 @@
2
2
  wordlist のデータを複数のシートから読み込む関数を作ればよいのではないでしょうか。
3
3
 
4
4
  注意:各wordlistの元シートの読み込み開始位置はすべて同じであるという前提です(A列~C列の3列、1行目以降)。
5
- aシートはA1セルを左上にして読み込むが、bシートはB3セルを左上にして読み込む、というような場合下記はうまく動きません(別のアプローチが必要)
5
+ aシートはA1セルを左上とする3列の範囲を読み込むが、bシートはB3セルを左上とする4列の範囲を読み込む、というような場合下記はうまく動きません(別のアプローチが必要)
6
6
 
7
7
 
8
8
  ```js

4

 

2023/01/19 15:55

投稿

退会済みユーザー
test CHANGED
@@ -1,7 +1,8 @@
1
1
  「wordlist のデータを、複数のシートから読み込みたい」ということであれば、
2
2
  wordlist のデータを複数のシートから読み込む関数を作ればよいのではないでしょうか。
3
3
 
4
+ 注意:各wordlistの元シートの読み込み開始位置はすべて同じであるという前提です(A列~C列の3列、1行目以降)。
4
- 注意:各wordlistの元シートの読み込み位置はすべて同じであるという前提です。aシートは1行目から読み込むが、bシートは3行目から読み込む、といった場合下記はうまく動きません(別のアプローチが必要)
5
+ aシートはA1セルを左上にして読み込むが、bシートはB3セルを左上にして読み込む、というような場合下記はうまく動きません(別のアプローチが必要)
5
6
 
6
7
 
7
8
  ```js

3

 

2023/01/19 15:54

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,7 @@
1
1
  「wordlist のデータを、複数のシートから読み込みたい」ということであれば、
2
2
  wordlist のデータを複数のシートから読み込む関数を作ればよいのではないでしょうか。
3
+
4
+ 注意:各wordlistの元シートの読み込み位置はすべて同じであるという前提です。aシートは1行目から読み込むが、bシートは3行目から読み込む、といった場合下記はうまく動きません(別のアプローチが必要)
3
5
 
4
6
 
5
7
  ```js

2

2023/01/19 15:53

投稿

退会済みユーザー
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  // sh = ss.getSheetByName('a') // 削除
10
10
  // シートの配列
11
- var wordListSheets = [ ss.getSheetByName('a'), ss.getSheetByName('b')];
11
+ var wordListSheets = [ss.getSheetByName('a'), ss.getSheetByName('b')];
12
12
 
13
13
  // wordlist のデータを複数のシートから読み込む関数
14
14
  function getWordListFrom(sheets) {

1

2023/01/19 15:49

投稿

退会済みユーザー
test CHANGED
@@ -11,7 +11,7 @@
11
11
  var wordListSheets = [ ss.getSheetByName('a'), ss.getSheetByName('b')];
12
12
 
13
13
  // wordlist のデータを複数のシートから読み込む関数
14
- function getWordListFromSheets(sheets) {
14
+ function getWordListFrom(sheets) {
15
15
  var wordList = [];
16
16
  sheets.forEach(sh => {
17
17
  var lastRow = sh.getLastRow();
@@ -25,7 +25,7 @@
25
25
  var lastRow = sh.getLastRow();
26
26
 
27
27
  // var wordList = sh.getRange(1,1,lastRow,3).getValues(); // ここを下のように修正
28
- var wordList = getWordListFromSheets(wordListSheets));
28
+ var wordList = getWordListFrom(wordListSheets));
29
29
 
30
30
  ...
31
31
  以下略