にわかプログラマの備忘録

仕事の過程で調べたことを忘れないように記載しています

スプレッドシート カスタム関数

無難にカスタム関数から弄ってみたものの、説明文がうまく表示できずに躓く羽目に。
そして結果解決していない。

公式とも、調べて出てきたサイトとも書き方は変わってないし、何ならコピペしても結果は同じ。
解せないがメインじゃないので諦めた。

解決!一番下に記載

カスタム関数基本

/**
 * 消費税を10%で税込みを表示します
 *
 * @param {number} price 税込みにしたいものを指定
 * @return {number} 税込み価格が返ります
 * @customfunction
 */
function jpTAX(price){
  var totalPrice = price * 1.1; 
  return totalPrice;
}
f:id:sorane0908:20210609101728j:plain
カスタム関数の表示

コメント部分はなくても動きますが、オートコンプリートで出てきたり、概要が出たりと表記をお勧めします。
特に自分以外の人が使うならなおさらね。

コメントの書き方は JsDoc 関数は JavaScript

関数部分は税込み表示にするものですが、実際使う気はなくテストで作ったもののため適当です。

コメント部分詳細

/**
 * 消費税を10%で税込みを表示します
 *
 * @param {number} price 税込みにしたいものを指定
 * @return {number} 税込み価格が返ります
 * @customfunction
 */

上から 関数概要、引数概要、返り値概要、関数だという宣言 になっています。

関数概要を複数行で記載すると改行は無視されました。

引数は

@param {データ型} 名前 概要

となっています。

返り値概要はスプレッドシート上では表示されないため、メモ程度の扱いでいいかと思います。

@customfunction

これを記載することでオートコンプリートが動作します。

関数部分詳細

function 関数名(変数){
  ~~中身~~
  return 返り値;
}

JSそのままなので割愛。
大文字小文字は判別されている様子です。

その他

同じファイル上でもコメントと関数を交互に書けばちゃんとそれぞれの説明として認識されていました。
JsDocでは常識なのかな。

概要が表示されない場合

f:id:sorane0908:20210609104542j:plain
関数表示エラー

最初はコメント部分を正しく記載したにも関わらず、概要が表示されませんでした。

最終的に関数にカーソルを合わせ、右に行ったり、左に行ったりしているうちにが=の前に表示され、それをクリックしたら概要が表示されるようになりました。

私のスプレッドシートの設定なのか、通常動作なのかは不明なままですが、表示されたのでよしとします。