質問編集履歴

6

誤記修正

2024/10/23 12:47

投稿

yaxavr
yaxavr

スコア40

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  スプレッドシートを新規作成して3回ほど同じ手順を試してみましたが、やはり同じ現象です。
22
22
 
23
- あと試したこととして、問題が起きている`test3()`という関数をApp Scriptエディタ上で`実行`や`デバッグ`したきは期待通り`bb2`が返ることを確認しています。
23
+ あと試したこととして、問題が起きている`test3()`関数をApp Scriptエディタ上で`実行`や`デバッグ`すると期待通り`bb2`が返ることを確認しています。
24
24
 
25
25
  このような現象に遭遇された方がおられましたらアドバイスいただけますと助かります。
26
26
  よろしくお願いいたします。

5

誤記修正

2024/10/23 12:45

投稿

yaxavr
yaxavr

スコア40

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  スプレッドシートを新規作成して3回ほど同じ手順を試してみましたが、やはり同じ現象です。
22
22
 
23
- あと試したこと、問題が起きている`test3()`という関数をApp Scriptエディタ上で`実行`や`デバッグ`したときは期待通り`bb2`が返ます。
23
+ あと試したこととして、問題が起きている`test3()`という関数をApp Scriptエディタ上で`実行`や`デバッグ`したときは期待通り`bb2`が返ることを確認します。
24
24
 
25
25
  このような現象に遭遇された方がおられましたらアドバイスいただけますと助かります。
26
26
  よろしくお願いいたします。

4

誤記修正

2024/10/23 12:40

投稿

yaxavr
yaxavr

スコア40

test CHANGED
File without changes
test CHANGED
@@ -14,9 +14,9 @@
14
14
 
15
15
  しかし、結果は変わらず、エラーメッセージにも変化は見られません。
16
16
 
17
- 参考にしたページによると、`appsscript.json`を追加して一度スクリプトを実行すると、「承認が必要です」というダイアログが開き、そこで権限を付与する手順となっていましたが、のダイアログは表示されません。
17
+ 参考にしたページによると、`appsscript.json`を追加して一度スクリプトを実行すると、「承認が必要です」というダイアログが開き、そこで権限を付与する手順となっていましたが、ようなダイアログは表示されませんでした
18
18
 
19
- エラーの原因は、おそらく権限が付与されていないためではないかと思いますが、このダイアログが表示されないため行き詰まっている状態です。
19
+ エラーの原因は、おそらく参照先のスプレッドシートに権限が付与されていないためではないかと思いますが、このダイアログが表示されないため行き詰まっている状態です。
20
20
 
21
21
  スプレッドシートを新規作成して3回ほど同じ手順を試してみましたが、やはり同じ現象です。
22
22
 

3

誤記修正

2024/10/23 12:39

投稿

yaxavr
yaxavr

スコア40

test CHANGED
File without changes
test CHANGED
@@ -1,7 +1,7 @@
1
1
  jsは一通り書けるつもりですが、GASは初心者です。
2
2
  Googleスプレッドシートで他のスプレッドシートを参照して、結果を返すユーザ関数を書こうとしています。
3
3
 
4
- セル`O2` には`=test3()`と入力しており、結果の期待値`bb2`が入るはずなのですが、実際は下記エラーとなります。
4
+ セル`O2` には`=test3()`と入力しており、結果の期待値として`bb2`が入るはずなのですが、実際は下記エラーとなります。
5
5
 
6
6
  ```
7
7
  Exception: You do not have permission to call SpreadsheetApp.openByUrl.

2

GAS実行結果の追加

2024/10/23 12:37

投稿

yaxavr
yaxavr

スコア40

test CHANGED
File without changes
test CHANGED
@@ -71,7 +71,8 @@
71
71
  }
72
72
  ```
73
73
 
74
-
74
+ - App Scriptエディタ上での`test3()`の実行結果
75
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2024-10-23/ee41e5d4-ad2f-4d50-8c1e-93e85b4fa060.png)
75
76
 
76
77
  - 問題が起きているスプレッドシート(work):https://docs.google.com/spreadsheets/d/1m_t5eTXlxA3h1xVk_7ODP1Aghq7MGx8AOFml11CJSuw/edit
77
78
  - GASで参照している外部のスプレッドシート(master):https://docs.google.com/spreadsheets/d/16AbcQ9HXfe_A_Bgz4nfPWMEMvu_ACCIN-pRrWjxVhQY/edit

1

追加情報と参考コード

2024/10/23 12:27

投稿

yaxavr
yaxavr

スコア40

test CHANGED
File without changes
test CHANGED
@@ -20,8 +20,58 @@
20
20
 
21
21
  スプレッドシートを新規作成して3回ほど同じ手順を試してみましたが、やはり同じ現象です。
22
22
 
23
+ あと試したことは、問題が起きている`test3()`という関数をApp Scriptエディタ上で`実行`や`デバッグ`したときは期待通りに`bb2`が返ってきます。
24
+
23
25
  このような現象に遭遇された方がおられましたらアドバイスいただけますと助かります。
24
26
  よろしくお願いいたします。
27
+
28
+ - appsscript.json
29
+ ```json
30
+ {
31
+ "timeZone": "Asia/Tokyo",
32
+ "dependencies": {
33
+ },
34
+ "oauthScopes": [
35
+ "https://www.googleapis.com/auth/spreadsheets"
36
+ ],
37
+ "exceptionLogging": "STACKDRIVER",
38
+ "runtimeVersion": "V8"
39
+ }
40
+ ```
41
+
42
+ - 問題のスクリプト
43
+ ```js
44
+ const DB_Master = 'https://docs.google.com/spreadsheets/d/16AbcQ9HXfe_A_Bgz4nfPWMEMvu_ACCIN-pRrWjxVhQY/edit';
45
+
46
+ // ------------------------------------
47
+ // マスタDBのOPをnameで検索してその行を取得
48
+ function find_values(lines, v, col) {
49
+ for (const i in lines) {
50
+ if (lines[i][col] == v) return lines[i];
51
+ }
52
+
53
+ return false; // not found
54
+ }
55
+
56
+ // マスタDBのOPをnameで検索してその行を返す
57
+ function search_db_op(code_name) {
58
+ const ss = SpreadsheetApp.openByUrl(DB_Master);
59
+ const sheet = ss.getSheetByName('OP');
60
+ const vals = sheet.getRange('A2:AG').getValues();
61
+
62
+ const search_col = 4; // for name
63
+ return find_values(vals, code_name, search_col);
64
+ }
65
+
66
+ function test3() {
67
+ const dat = search_db_op("bar");
68
+ const ret = dat[6];
69
+ console.log(ret);
70
+ return ret;
71
+ }
72
+ ```
73
+
74
+
25
75
 
26
76
  - 問題が起きているスプレッドシート(work):https://docs.google.com/spreadsheets/d/1m_t5eTXlxA3h1xVk_7ODP1Aghq7MGx8AOFml11CJSuw/edit
27
77
  - GASで参照している外部のスプレッドシート(master):https://docs.google.com/spreadsheets/d/16AbcQ9HXfe_A_Bgz4nfPWMEMvu_ACCIN-pRrWjxVhQY/edit