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

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

スプレッドシートでGASを使う時のおすすめ事前準備

GASを使用するとき、エディタなどの開発環境は特別必要ありませんが、スプレッドシートで使用するときはシートの値を見ながらプログラムのテストをしたいな、と思います。
でも、AppsScriptで作成した関数はスプレッドシートからはボタンが無いと実行できず、console.logもシートからは確認できません。

そのため、スプレッドシートから関数を実行できるようにしていきます。

メニューを追加する

f:id:sorane0908:20210630144513j:plain
メニュー
function onOpen() {//スプレッドシートを読み込んだら実行
  var ui = SpreadsheetApp.getUi();//メニューを取得
  ui.createMenu('オプションメニュー')//メニュー名を作成
    .addItem('テスト', 'test')//メニュー項目と実行関数を指定
    .addSeparator()//区切り線を引く
    .addItem('テスト2', 'test2')
    .addToUi();
}

上記を設定すると

f:id:sorane0908:20210630144516j:plain
メニュー2

こうなります。

シート上に図形描画でボタンを作ってもいいのですが、正直こちらの方が楽かと。ボタンのUIにこだわらないのであれ十分だと思います。

中身を確認する

Browser.msgBox('表示したいもの');

consol.logの代わりです。まぁ、ブラウザ上にメッセージBoxを表示するだけですが。
シート上で関数を実行すると、ブラウザの検証でもlogは表示されません。(AppsScriptの[実行数]から実行した関数の詳細を見れば確認できます)
ので、もう直に表示させるしかないと思います。

スプレッドシートでGASを使う時の注意

正直、カスタム関数にしろ、普通の関数で入力ごとに取得して表示するにしろ、Excelと比べるとかなり遅いです。
そのため、入力場所が決まっているのであればすべて関数(裏)で処理することをお勧めします。