Google スプレッドシートをより便利に使うために、Google Apps Script (GAS)方法を、定型業務の独自のカスタムメニューを作成する方法を解説します。GASが使えれば、定型業務の自動化や便利な機能をメニューからワンクリックで実行できるようになります。
🎛️ 1.カスタムメニューの基本構造
関数は、スプレッドシートを表示した際に自動的に実行され、ユーザーインターフェイス(UI )にメニューが追加されます。GAS でカスタムメニューを作成するには、onOpen()
関数を利用します。onOpen()
関数は、スプレッドシートを表示した際に自動的に実行され、ユーザーインターフェース(UI)にメニューを追加します。
✅基本コード
ジャバスクリプトコピーする編集するfunction onOpen() {
// スプレッドシートのUIを取得
var ui = SpreadsheetApp.getUi();
// メニューを作成
ui.createMenu('カスタムメニュー') // メニュー名
.addItem('データ集計', 'aggregateData') // 項目名と実行関数
.addItem('レポート作成', 'createReport')
.addSeparator() // 区切り線の追加
.addItem('設定更新', 'updateSettings')
.addToUi(); // UI にメニューを追加
}
// データ集計関数
function aggregateData() {
SpreadsheetApp.getUi().alert('データ集計を開始します');
}
// レポート作成関数
function createReport() {
SpreadsheetApp.getUi().alert('レポートを作成しました');
}
// 設定更新関数
function updateSettings() {
SpreadsheetApp.getUi().alert('設定を更新しました');
}
📌ポイント
onOpen()
関数は自動実行される.addItem('メニュー名', '関数名')
でメニューの項目を追加.addSeparator()
で区切り線を追加.addToUi()
スプレッドシートにメニューを反映
📄 2.カスタムメニューを反映する方法
🛠️手順
- Googleスプレッドシートを開く
- 拡張機能 → Apps Scriptを押す
- コードエディタに上記のコードを貼り付けます
- 「デプロイ」→「テスト」→「onOpen」を実行
- シートを再読み込みして、メニューが追加されている事を確認
📚 3. サブメニューを追加する方法
。サブメニュー(ドロップダウン)を追加してaddSubMenu()
使用します。
✅サブメニューのコード
ジャバスクリプトコピーする編集するfunction onOpen() {
var ui = SpreadsheetApp.getUi();
// サブメニューの作成
var subMenu = ui.createMenu('レポート関連')
.addItem('月次レポート', 'createMonthlyReport')
.addItem('年次レポート', 'createAnnualReport');
// メインメニュー
ui.createMenu('カスタムメニュー')
.addItem('データ集計', 'aggregateData')
.addSubMenu(subMenu) // サブメニューを追加
.addItem('設定更新', 'updateSettings')
.addToUi();
}
// サブメニューの関数
function createMonthlyReport() {
SpreadsheetApp.getUi().alert('月次レポートを作成しました');
}
function createAnnualReport() {
SpreadsheetApp.getUi().alert('年次レポートを作成しました');
}
📌ポイント
createMenu()
でサブメニューを作成.addSubMenu(subMenu)
メインメニューにサブメニューを追加
⚡️ 4.ショートカットキーを表示する方法
できんが、`GAS のメニューでは直接ショートカットキーを優先することはできませんが、addItem()
説明として表示することが可能です。
ジャバスクリプトコピーする編集するui.createMenu('カスタムメニュー')
.addItem('データ集計 (Ctrl + Shift + A)', 'aggregateData')
.addToUi();
🕹️ 5. 条件付きメニューの作成
特定のユーザーや条件によってメニュー内容を変更することもできます。例えば、管理者のみ特別なメニューを表示させるには以下のようにします。
ジャバスクリプトコピーする編集するfunction onOpen() {
var ui = SpreadsheetApp.getUi();
var userEmail = Session.getActiveUser().getEmail();
var menu = ui.createMenu('管理メニュー');
if (userEmail === 'admin@example.com') {
menu.addItem('管理者用レポート', 'adminReport');
} else {
menu.addItem('ユーザー用レポート', 'userReport');
}
menu.addToUi();
}
// 管理者用レポート
function adminReport() {
SpreadsheetApp.getUi().alert('管理者レポートを作成しました');
}
// ユーザー用レポート
function userReport() {
SpreadsheetApp.getUi().alert('ユーザー用レポートを作成しました');
}
📌ポイント
Session.getActiveUser().getEmail()
でログインユーザーのメールアドレスを取得- 条件分岐でユーザーごとにメニューを出し分ける
🔍 6. トラブルシューティング
❗️メニューが表示されない場合
- 実
onOpen()
手動で実行してからシートを再読み込み - 許可のリクエストが必要な場合は、許可を与える
View
→Execution log
でエラーを確認
🎯 7. 応用例:業務自動化メニューの活用
GAS メニューは業務効率化にも活用できます。例えば、以下のような操作をワンクリックで実行できます。
- 売上の集計
- 顧客レポートの自動作成
- Googleドライブへのバックアップ
ジャバスクリプトコピーする編集するfunction backupData() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
var folder = DriveApp.getFolderById('FOLDER_ID'); // フォルダIDを指定
var fileName = 'バックアップ_' + Utilities.formatDate(new Date(), 'JST', 'yyyyMMdd');
var newFile = folder.createFile(fileName + '.csv', convertToCSV(values));
SpreadsheetApp.getUi().alert('バックアップを作成しました: ' + newFile.getName());
}
// データをCSV形式に変換
function convertToCSV(data) {
return data.map(function(row) {
return row.join(',');
}).join('\n');
}
🎉 8. まとめ
Google Apps Script (GAS) でのカスタムメニュー作成は、日常業務の効率化やスプレッドシートの機能拡張に非常に便利です。
✅基本的な手順
onOpen()
でメニューを自動作成- で項目を追加
.addItem()
やで.addSubMenu()
項目を追加 .addToUi()
でUIに反映- 必要に応じて、サブメニュー・条件分岐・自動化機能を追加
これであなたのスプレッドシートは、業務効率を大幅にアップさせる強力なツールになります!
コメントを残す