LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Tuesday, June 14, 2016

自作関数を作成する

スプレッドシートに用意されていない関数を作って、自作関数として使えるようにする事ができます。
例として、任意のセルに入力されているテキストで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

スプレッドシートA列にある複数のテキストをスライドに追加したい(Google Apps Script)

今回Google Apps Scriptでやりたいこと GoogleスプレッドシートA列にある複数の値を取得して Googleスライドに渡して 図形オブジェクトのテキストとして追加したい ① スプレッドシートのA列に値を入れておく ② Code.gsのinsertNewShape...