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

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

【Google Apps Script(GAS)】元の関数から別の関数を呼び出し、returnで値を返して元の関数で使用する
今回は、Google Apps Scriptで元の関数から別の関数を呼&#1240...

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

【Excel VBA】計算結果が0の場合、空白を返すユーザー定義関数
Excel VBAではオリジナルの関数である、ユーザー定義関数を作成する事ができます。 通常Excelに用意されている関数では実現できないような処理を実行したり、非常に長い関数になってしまうところを簡潔にまとめたりなど、アイデ...

 

タイトルとURLをコピーしました