【Google Apps Script(GAS)】オリジナル関数の作成

オンラインGAS講座 開講中!
オンライン無料体験あり!
最短4週間でGASをマスターできる
Google Apps Scriptコース』開講中!

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); //割引額を返す
}
オリジナル関数DISCOUNT実行結果

オリジナル関数DISCOUNT実行結果

上記のサンプル1についてですが、まず、

function DISCOUNT(sale){

ですが、関数名はDISCOUNTで、
引数saleには、今回の例ではスプレッドシートのA2に記載されている値(今回は100)が格納されます。

var par = 0.2;

では変数parに割引率を格納し、

return sale * (1 – par);

ではスプレッドシートより取得した値に(1 – par)、つまり今回は0.8を掛けて割引額を算出し、

return

で割引額をスプレッドシート上に返しています。

また、数値が入っていないセルに対して今回の関数を使用すると、下記のようにエラーが表示されます。

オリジナル関数DISCOUNTエラー結果

オリジナル関数DISCOUNTエラー結果

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についてはこちらの記事もご参照ください。

https://vba-gas.info/function-return

Excel VBAのユーザー定義関数の記事はこちらをご参照ください。

Excel VBAではオリジナルの関数である、ユーザー定義関数を作成する事ができます。 通常Excelに用意されている関数では実現でき...

シェアする

  • このエントリーをはてなブックマークに追加

フォローする