スプレットシートでは様々な関数が用意されており非常に便利です。しかし、準備された関数ではできないような処理をするために、自作の関数を使いたい時もあります。
今回はスプレットシートで自作関数をGAS(Google App Script)で作成する方法を紹介します。
スプレットシートで自作関数を利用する方法
自作関数はGAS(Google App Script)で作成します。手順を説明します。
自作関数の作成と利用は簡単です。
- App Script(スプレットシートのコンテナバインドスクリプト)の起動
- 自作関数を作成する
- スプレットシートのセルに自作関数を入力する
App Scriptの起動
自作関数を作成するにはスプレットシートの拡張機能からApp Scriptを起動します。
App Scriptは、スタンドアローンスクリプトとコンテナバインドスクリプトの2種類がありますが、自作関数はスプレットシートに紐づくコンテナバインドスクリプトで作成してください。
Googleアプリと独立しているApp Scriptです。Googleドライブでファイルとして保存されます。
コンテナバインドスクリプトとは
スプレットシート、ドキュメント、スライドなどのGoogleアプリと紐づいているApp Scriptです。各アプリのファイルの一部として保存されます。
自作関数の作成
GASの自作関数のコードの概略はこんな感じです。
1 2 3 4 5 | function functionName(arg1, arg2) { //処理 return //戻り値 } |
通常通りfunctionで関数を定義します。
functionの後ろには、自作関数名と引数を定義します。
{}の中にこの関数で処理するコードを書きます。
returnは関数の戻り値を入力します。
理解を深めるために、実際に簡単な自作関数を作成します。
引数にテストの点数を入れて、80点以上なら「合格」,80点未満なら「不合格」と表示される関数を作ってみます。
1 2 3 4 5 6 7 8 9 10 11 | function testresult(arg) { var result; if(arg>=80){ result = "合格"; }else{ result = "不合格"; } return result; } |
自作関数を使用するには、通常の関数と同じように「=関数名(引数1,…)」と入力するだけです。
上記の自作関数を作った結果は下図のようになります。

これくらいなら自作関数を使わずともIF関数で作ることができますが、自作関数を作るイメージは理解できたのではないでしょうか。
動物占いの結果を表示する自作関数を作ってみる
最後に、応用として自作関数で生年月日をいれたら動物占いの結果が表示される関数を作成してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | function animalDivination(date) { let serialValue; let animalNum; serialValue = date.getTime()/86400000 + 0.375 + 25569; //エクセルのシリアル値に変換 animalNum = (serialValue+8) % 60 + 1 ; //動物のNo.の計算 //動物を入れる配列の宣言(1~60)を使用 let animal = new Array; //動物の配列への登録 animal[1]="長距離ランナーのチータ" animal[2]="社交家のたぬき" animal[3]="落ち着きのない猿" animal[4]="フットワークの軽い子守熊" animal[5]="面倒見のいい黒ひょう" animal[6]="愛情あふれる虎" animal[7]="全力疾走するチータ" animal[8]="磨き上げられたたぬき" animal[9]="大きな志をもった猿" animal[10]="母性豊かな子守熊" animal[11]="正直なこじか" animal[12]="人気者のゾウ" animal[13]="ネアカの狼" animal[14]="協調性のないひつじ" animal[15]="どっしりとした猿" animal[16]="コアラのなかの子守熊" animal[17]="強い意志をもったこじか" animal[18]="デリケートなゾウ" animal[19]="放浪の狼" animal[20]="物静かなひつじ" animal[21]="落ち着きのあるペガサス" animal[22]="強靭な翼をもつペガサス" animal[23]="無邪気なひつじ" animal[24]="クリエイティブな狼" animal[25]="穏やかな狼" animal[26]="粘り強いひつじ" animal[27]="波乱に満ちたペガサス" animal[28]="優雅なペガサス" animal[29]="チャレンジ精神旺盛なひつじ" animal[30]="順応性のある狼" animal[31]="リーダーとなるゾウ" animal[32]="しっかり者のこじか" animal[33]="活動的な子守熊" animal[34]="気分屋の猿" animal[35]="頼られると嬉しいひつじ" animal[36]="好感のもたれる狼" animal[37]="まっしぐらに突き進むゾウ" animal[38]="華やかなこじか" animal[39]="夢とロマンの子守熊" animal[40]="尽す猿" animal[41]="大器晩成のたぬき" animal[42]="足腰の強いチータ" animal[43]="動きまわる虎" animal[44]="情熱的な黒ひょう" animal[45]="サービス精神旺盛な子守熊" animal[46]="守りの猿" animal[47]="人間味あふれるたぬき" animal[48]="品格のあるチータ" animal[49]="ゆったりとした悠然の虎" animal[50]="落ち込みの激しい黒ひょう" animal[51]="我が道を行くライオン" animal[52]="統率力のあるライオン" animal[53]="感情豊かな黒ひょう" animal[54]="楽天的な虎" animal[55]="パワフルな虎" animal[56]="気どらない黒ひょう" animal[57]="感情的なライオン" animal[58]="傷つきやすいライオン" animal[59]="束縛を嫌う黒ひょう" animal[60]="慈悲深い虎" return animal[animalNum]; //該当のanimalNumの動物名を返す } |
ちなみに、動物占いの計算は下記で解説しています。

生年月日を入れると動物占いの結果を表示する自作関数を使ってみるとこんな感じになります。
