Apps Script公式リファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2016年6月14日火曜日

自作関数を作成する

スプレッドシートに用意されていない関数を作って、自作関数として使えるようにする事ができます。
例として、任意のセルに入力されているテキストでgoogle検索するリンクを作成してみます。
シートにHyperlink関数を入力する」「シートにHyperlink関数を入力する2」に似ていますが、単純にリンクだけを作成したい場合は、こちらのほうがシンプルに書けます。

ポイント
1. 検索サイトを設定します。
 var site = 'https://www.google.co.jp/#q=';

2. 半角・全角スペースを含むテキストではリンクが作成されないため、スペースを + に置換しています。
text.replace(/[  ]/g, "+");
[  ]の中には半角スペースと全角スペースが入っています。


コード.gs
function setLink(text) {
  var site = 'https://www.google.co.jp/#q=';
  var link = site + text.replace(/[  ]/g, "+");
  return link;
}



コードを書いて実行するまでの手順です。

1. A列に検索したいテキストを入力しておきます。


2. コード.gsにコードを書いて保存します。


3. A2のテキストのリンクをB2に作成する場合、B2へ下記のように関数を入力します。


4. B2にリンクが作成されます。


5. B2の右下端を下へドラッグすると

A列のそれぞれのテキストのリンクが作成されます。




スプレッドシートに用意された関数で今回の例を実現するには、concatenate()関数と、substitute()関数またはRegExReplace()関数を利用して、こんな感じでしょうか。

=concatenate("https://www.google.co.jp/#q=", substitute(substitute(A2," ","+")," ","+"))

=concatenate("https://www.google.co.jp/#q=", RegExReplace(A2, "[  ]", "+"))


補足


関数名について
  • 組み込み関数とは異なる名前にする
  • _で終わらせることはできない
    • 末尾のアンダースコアはプライベート関数を表すため
  • function myFunction()で定義する
    • var myFunction = new Function ()にはしない

Latest post

Google Apps Scriptの障害時はIssueTrackerを見てみる - Incidents for Apps Script are reported on Issue Tracker

IssueTracker > Apps Script issues https://issuetracker.google.com/savedsearches/566234 Google Apps Scriptの障害時は IssueTracker に課題が上がっていることが...