Google Apps Scriptでは、オリジナルの関数を作成してスプレッドシート上で使用する事もできます。
Excel VBAで言うところのユーザー定義関数になるかと思いますが、今回はそのGoogle Apps Script版についてご紹介します。
Google Apps Scriptでオリジナル関数を作成する
まず、書き方としては下記のようなスクリプトとなりますが、
function 関数名(引数){
処理内容
}
正直なところ実際に試してみた方が早いかと思いますので、今回は下記のサンプル1のスクリプトの、スプレッドシート上での実行結果を先にお見せしつつ、その上でサンプル1についてご説明します。
・サンプル1
function DISCOUNT(sale){ var par = 0.2; //割引率 return sale * (1 – par); //割引額を返す } |
上記のサンプル1についてですが、まず、
function DISCOUNT(sale){
ですが、関数名はDISCOUNTで、
引数saleには、今回の例ではスプレッドシートのA2に記載されている値(今回は100)が格納されます。
var par = 0.2;
では変数parに割引率を格納し、
return sale * (1 – par);
ではスプレッドシートより取得した値に(1 – par)、つまり今回は0.8を掛けて割引額を算出し、
return
で割引額をスプレッドシート上に返しています。
また、数値が入っていないセルに対して今回の関数を使用すると、下記のようにエラーが表示されます。
Excel VBAで作った関数をGoogle Apps Scriptでも作ってみる
ちなみに、以前ご紹介したExcel VBAで計算結果が0の場合、空白を返すユーザー定義関数をGoogle Apps Scriptで再現すると、下記のサンプル2のようになります。
シートの中で0を表示させたくない時に、長ったらしい関数を使うのが嫌な場合など、意外と使い道はあるかもしれません!
・サンプル2
function ZEROSPACE(range){ if(range == 0){ return ”; } else { return range; |
サンプル2のスクリプトですが、
if(range == 0){
return ”;
で、セルの値が0の場合は空白となり、
} else {
return range;
で、セルの値が0以外の場合はセルの値をそのまま残す、というようにしています。
色々と工夫すると面白い関数ができるかもしれませんね!
Google Apps Scriptのreturnについてはこちらの記事もご参照ください。
Excel VBAのユーザー定義関数の記事はこちらをご参照ください。