かずきち。の日記

サーバサイドエンジニアのつぶやき

【GoogleAppsScript】スプレッドシートのメニューバーを追加して、特定セルのみ記入できるアプリを作っていく


社内ITの悩み

いろんな社員がエクセルやスプレッドシートをいじって、シートがめちゃくちゃになる。


A列は編集させたいけど、B列はいじっちゃだめ
Aのシートはいじっていいけど、Bのシートはマスターシートなのでいじっちゃだめ

こんな運用をしている人も多いのではないでしょうか?
しかもそんな運用を口頭でやっていたらルールが破綻するのは見えているので、Google側で制御していきましょう。

今回はスプレッドシートに専用のメニューボックスを作っていきます

完成形態はGoogleスプレッドシートのメニューに専用メニュを作り、
なおかつ作ったメニューに特定の限定した挙動を登録します。

function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu("追加メニュー")
.addItem("証券コード登録","registCode")
.addToUi();
}

「ファイル」「編集」「表示」「挿入」「表示形式」「データ」「ツール」「拡張機能」「ヘルプ」の隣に
「追加メニュー」というメニューが表示されている。
これはonOpenで書かれておりスプレッドシート起動時にスクリプトが読み込まれるのと自動で発火する。

uncle-gas.com
引用:
スプレッドシートにカスタムメニューを追加する方法 | GASおじさんのブログ

日本語で書くと
スプレッドシートを開いたときに追加メニューという新規メニューを作っちゃいなさいというおまじないである。
プログラミングで実行するコマンドを「ボタン」に詰め込んでカプセル化できるので、ユーザー部門にソフトウェアを納品する機会がある人はぜひ覚えておきたい機能である。