GAS初心者のメニュー作成
はじめに
GAS初心者の方に向けて、スプレッドシートのUIにカスタムメニューを追加し、ボタンを作成してスクリプトを割り当てる手順を解説します。まずは基本的なメニュー追加の流れを押さえましょう。
onOpenでメニューを追加
スプレッドシートを開いたときに自動でメニューを追加するには、onOpenトリガーを使います。以下のように関数を定義し、スクリプトエディタに保存します。
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('カスタムメニュー')
.addItem('メニュー1', 'menu1')
.addItem('メニュー2', 'menu2')
.addToUi();
}
このコードは、スプレッドシートを開くたびに「カスタムメニュー」という名前のメニューを追加します。
createMenuとaddItem
メニューを作る際はcreateMenuでメニュー名を設定し、addItemで項目を追加します。項目には表示名と実行する関数名を指定します。
var menu = ui.createMenu('カスタムメニュー');
menu.addItem('データ取得', 'fetchData');
menu.addItem('レポート作成', 'createReport');
menu.addToUi();
ここで定義したfetchDataやcreateReportは、別途スクリプトとして実装します。
addToUiでUIに反映
メニューを作成したら、必ずaddToUiを呼び出してスプレッドシートのUIに反映させます。これを忘れるとメニューが表示されません。
ui.createMenu('カスタムメニュー')
.addItem('実行', 'runScript')
.addToUi();
addToUiはUI操作の最後に呼び出すのが一般的です。
カスタムメニューでUI操作
カスタムメニューから呼び出す関数内で、スプレッドシートUIを操作できます。例えばセルの値を取得したり、フォーマットを変更したりします。
function runScript() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange('A1');
var value = range.getValue();
SpreadsheetApp.getUi().alert('A1の値は ' + value + ' です。');
}
このように、メニューから簡単にUI操作を行うことができます。
スプレッドシートUIとボタン作成
メニュー以外に、シート上にボタンを配置してスクリプトを割り当てる方法もあります。図形を挿入し、右クリックで「スクリプトを割り当て」を選択します。
ボタンに割り当てる関数名は、スクリプトエディタで定義したものと同じにします。例えば「runScript」を割り当てると、ボタンをクリックしたときに同じ処理が実行されます。
スクリプト割り当て
ボタンやメニューから呼び出す関数は、必ず公開関数として定義します。非公開関数(function _private()のようにアンダースコアで始まる)はUIから呼び出せません。
function fetchData() {
// データ取得処理
}
function createReport() {
// レポート作成処理
}
これらの関数をスクリプトエディタに保存し、スプレッドシートを再読み込みすると、メニューやボタンから実行できるようになります。
コメント
コメントを投稿