父の業務を効率化するためにGASを組んだのですが、その際に使ったアラート機能をここに残します🔥
経緯
経緯としては、プログラミングに疎い父のために、GASでUI的にアラートを出してあげよう!というのが始まりです。少しだけ入力させる工程があり、お得意先さんの名前とそのコードを記入しないといけないのですが、そこでおっちょこちょいの父は、片方しか入力しなかったりしてミスる訳です。その時に、プログラミングできない父はログとか読むと思いますか?いや読める訳ないんです笑
そこで、UI的にスプレッドシート側にアラートを出そう!と決めました💪
使い方
アラートの使い方には、主に2種類があると思っています。
- シンプルにコードで使う
- 例外処理と組み合わせて使う
上記の順で説明します🙌
簡単な使い方
以下の内容が表示するコードです。
至ってシンプル!!!
if(clientCode.length === 0) {
SpreadsheetApp.getUi().alert('エラー\n得意先コードが未入力です。\n実行できません。')
return
} else if(clientName.length === 0) {
SpreadsheetApp.getUi().alert('エラー\n得意先名が未入力です。\n実行できません。')
return
}
SpreadSheetAppクラスのgetUiメソッド群の中にあるalert()を使います。
DOMのalertとほとんど同じ用法で、()の中には、文字列を格納する以外の使い道はありません。
例外処理との組み合わせ
また、例外処理と組み合わせる場合は以下のように使うと良いでしょう!
// 新しいシートの作成
let newSheet = sheet.insertSheet()
const title = `${clientCode} ${clientName}`
try {
newSheet.setName(title)
} catch(e) {
SpreadsheetApp.getUi().alert(e.message)
sheet.deleteSheet(newSheet)
return
}
このコードは、新しいシートを作成するのですが、シート名を設定するtitle変数に値がない場合setName関数がエラーを吐きます。そのエラーをtry-catch構文でキャッチし、例外クラスのメッセージフィールドをalertで表示し、return文でGASの実行を停止します。
最後に
このように、例外処理try-catchと組み合わせることで、プログラミングが苦手な父も使えるサービスになりました⭐️
UIを意識する場合は、使ってみると良いかもしれません!それでは〜🙋♂️
参考文献