Blow Up by Black Swan

GAS(Google Apps Script)とスプレッドシート Part2(カスタムファンクション編)

前回、GAS(Google Apps Script)からスプレッドシートを使う基本的な方法についてまとめました。

今回は、GASファイルで定義した独自のカスタムファンクションをスプレッドシートで使う方法についてまとめます。今回の記事は公式リファレンスの「Extend G Suite」-「Custom Functions in sheets」を参考にしています。公式リファレンスは英語ですので、この記事が英語に抵抗のある方など、一人でも多くの方の参考になれば幸いです。

※ なお、当記事は2019年8月時点の公式リファレンスに基づき執筆しています。今後、GASのアップデート等でGASと記事内容に齟齬が生じる場合もありますので、あらかじめ最新の公式リファレンス等を確認頂ければと思います。

1. GASでカスタムファンクションを作る方法

GASでカスタムファンクションを作成する方法はいたって簡単でGASファイルで関数を定義するだけです。以後、作成フローについて説明します。注意点としては、GASファイルをスプレッドシートから作成し、紐づいた状態にしていることです。なお、スプレッドシートからGASファイルを作成する方法は、前回の記事でスクリーンショット付きで解説しているので、そちらも参照頂ければと思います。

  1. 新規スプレッドシートを作成し、開く
  2. 「ツール」-「スクリプトエディタ」を選択
  3. スクリプトエディタに関数を記入し、保存

これでカスタムファンクションが作成されました。今回は、公式リファレンスに沿って、インプット値の2倍の値を返す関数を題材にしており、コードは以下になります。

function DOUBLE(input) {
  return input * 2;
}

2. カスタムファンクションを使ってみる

それでは、作成フローに沿ってカスタムファンクションを作成、保存した上で、この関数を実際に使ってみます。使い方は通常の関数を使うのと同じ方法で、セルに”=関数名(引数)”と定義するだけです。引数に値が入ったセルを指定すれば、その値の2倍の値が関数を入力したセルに出力されます。実行してみると”Loading”という表記が出て少し時間がかかりますが、正しく実行されていることがわかると思います。実行結果のイメージは下記になります。

gas-customfunction

3. カスタムファンクションのガイドライン

[2019/8/28]追記した章

GASではカスタムファンクションのガイドラインを公表し、種々のルールを規定しています。ここでは、ガイドラインに記載されている情報の中で主だったものをまとめています。

  • ネーミング
    • ビルトイン(最初からスプレッドシートに組み込まれている)関数と同名の関数を定義してはならない
    • アンダースコア(_)で終わる名前にするとプライベート関数となり、セルで利用することはできない
    • 定義の形式はfunction funcName() {}の形式を取らなければならない
    • 大文字の使用は問題ない
  • 引数
    • 複数のセルが取れる関数にする場合、引数はセルの値をもつ2次元配列でないとならない

4. まとめ

以上がGASでカスタムファンクションを定義し、使う方法です。私はエクセルなどで使われるVBAは使ったことがないので、VBAとGASのどちらが使い勝手が良いかはわかりませんが、GASの使い勝手の良さはとても実感しています。適当な関数がない場合は、カスタムファンクションを定義することで、スプレッドシートの使いやすさを上げていくと良いと思います。なお、”add-on store”で様々なカスタムファンクションが提供されているようですので、カスタムファンクションを作成するのが煩わしい場合はそちらを覗いてみても良いかもしれません。

読んで頂き、ありがとうございました。この記事が参考になりましたら幸いです。