見出し画像

独自関数(オリジナル関数)を作ったときに、セルの指定に””が必要な場合【Googleスプレッドシート】【GAS】

前回の記事で紹介した年号対応表を、オリジナル関数で変換してみようとおもいます。それにあたり、オリジナル関数の基本を書いてみます。

セルの値を使いたい関数の場合

これが一番簡単な形式じゃないでしょうか。

function aaa(x){
  return x
}

このように作動します。
aaa("A1") ⇒ A1
aaa(A1) ⇒ 1 (セルの値) となりますね。
セルの範囲にしても同様の結果です。


セルの値以外を使いたい関数の場合

function bbb(x){
  const y = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(x).getBackground();
  return y
}

セルの色を取得する関数を作ってみました。
取得の結果は、「##4477」みたいな6桁で表示されるスクリプトです。

bbb("A1") ⇒ #c9daf8 成功!
bbb(A1) ⇒ #ERROR! 失敗 となりました。

スクリプト内のgetRange ( x ) ここがポイントのようです。
bbb("A1") ⇒ getRange ( A1 ) ⇒ OK!
bbb(A1) ⇒ getRange ( 1 ) ⇒NG! となるようですね。

getBackground「s」() も作ってみます。

function ccc(x){
  const y = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(x).getBackgrounds();
  return y
}


getBackground() と getBackgrounds() 違いはこれだけです。
getValue() と getValues() こちらも今後使い分けが必要ですので、この機会にどう動作が違うか見てみてください。

範囲に対してその値を全部取るということができます。この「s」でスクリプトが機能するしないが変わりますので、要注意です。

まとめ

すこし脱線しましたが、

「””なし」で使うときは、値をそのまま使う時だけ

getRangeに組み込むときには「""あり」の運用


まとめてみるとこんな感じでしょうか。

では次回は実際の関数を作ってみましょう。

今回のシートです。


どんな記事ならサポートしてみようと思えるか、ご要望ありましたら教えてくださいね。