GASでセルに入力した関数をscript内で取得するには?

350 views
Skip to first unread message

よう

unread,
Jul 19, 2017, 7:17:30 AM7/19/17
to Google Apps API Japan
いつもお世話になっております。
GASでセルに入力した関数をscript内で取得するにはどうしたら良いでしょうか。

例えば
スクリプトエディタで
function hoge (var){
Logger.log(var)
return var
}
と関数を作り、
セル内に
=hoge(A1)
と入力した場合、
A1は「hogehoge」という文字列が入ってます

function hogeを実行したところ
ログはundifindとなります
return varは「hogehoge」という値が格納されています

function内で引数の値を出力したいのですが
どうしたら良いでしょうか、、、

hikochang

unread,
Jul 19, 2017, 8:37:10 AM7/19/17
to Google Apps API Japan
念のため確認ですが行末にセミコロンが無いのは、投稿時のミスでしょうか?

よう

unread,
Jul 19, 2017, 8:47:59 AM7/19/17
to Google Apps API Japan
ご連絡ありがとうございます。
;抜きとかは気にしないでください

2017年7月19日水曜日 21時37分10秒 UTC+9 hikochang:
念のため確認ですが行末にセミコロンが無いのは、投稿時のミスでしょうか?

よう

unread,
Jul 19, 2017, 9:00:09 AM7/19/17
to Google Apps API Japan
いかがでしょうか?

hikochang

unread,
Jul 19, 2017, 10:13:33 AM7/19/17
to Google Apps API Japan
varがダメなのでは?
以下だとどうですか?

function hoge (asdf){
Logger.log(asdf);
return asdf;
}

パソコン壊れているので、私は試せません。

hikochang

unread,
Jul 19, 2017, 10:22:19 AM7/19/17
to Google Apps API Japan
補足すると以下の単語は変数名などに使用出来ないor使用しない方が良い です。

break
case
catch
continue
debugger
default
delete
do
else
finally
for
function
if
in
instanceof
new
return
switch
this
throw
try
typeof
var
void
while
with

class
enum
export
extends
import
super

implements
interface
let
package
private
protected
public
static
yield

よう

unread,
Jul 19, 2017, 9:11:25 PM7/19/17
to Google Apps API Japan
ご連絡ありがとうございます。
以下のとおり
http://qiita.com/soundTricker/items/c9fa4470c59ef677dd5a

全く同じfunctionをスクリプトエディタで作り
function 消費税(num){
 Logger.log(num);
 return 1.05 * num; }

セルに
=消費税(100)
と入力し

セルの値は105
になるのですが

logの値はundefind
ですね、、、

numの値を取得したいです・・・

2017年7月19日水曜日 23時22分19秒 UTC+9 hikochang:

よう

unread,
Jul 19, 2017, 9:12:49 PM7/19/17
to Google Apps API Japan
returnで
1.05 * num
が計算できるなら
numの値も分かるはずなのでは!?

と思ってます

2017年7月20日木曜日 10時11分25秒 UTC+9 よう:

hikochang

unread,
Jul 20, 2017, 12:09:43 AM7/20/17
to Google Apps API Japan
見てるのはデバッグした時のログで、シートから呼ばれた時のログでは無いです

よう

unread,
Jul 20, 2017, 2:32:55 AM7/20/17
to Google Apps API Japan
ありがとうございます。
>見てるのはデバッグした時のログでシートから呼ばれた時のログでは無いです
恐らくそれが正解ですね。

失礼しました!

2017年7月20日木曜日 13時09分43秒 UTC+9 hikochang:
見てるのはデバッグした時のログで、シートから呼ばれた時のログでは無いです

hikochang

unread,
Jul 22, 2017, 10:01:08 PM7/22/17
to Google Apps API Japan
SpreadSheet などにLogを出力するのが簡単ですがスクリプトが重くなるし、そこでバグると目も当てられないので、基本的にはデバッグフェーズですべて見切る事を考えるのが良いですね。
Reply all
Reply to author
Forward
0 new messages