スキップしてメイン コンテンツに移動

GAS初心者のメニュー作成

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();

ここで定義したfetchDatacreateReportは、別途スクリプトとして実装します。

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() {
  // レポート作成処理
}

これらの関数をスクリプトエディタに保存し、スプレッドシートを再読み込みすると、メニューやボタンから実行できるようになります。

この記事はAIによって作成されました。

コメント