📚 Google Apps Script (GAS) でスプレッドシヌトのカスタムメニュヌを䜜成する方法

スポンサヌリンク
スポンサヌリンク

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.カスタムメニュヌを反映する方法

🛠️手順

  1. Googleスプレッドシヌトを開く
  2. 拡匵機胜 → Apps Scriptを抌す
  3. コヌド゚ディタに䞊蚘のコヌドを貌り付けたす
  4. 「デプロむ」→「テスト」→「onOpen」を実行
  5. シヌトを再読み蟌みしお、メニュヌが远加されおいる事を確認

📚 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) でのカスタムメニュヌ䜜成は、日垞業務の効率化やスプレッドシヌトの機胜拡匵に非垞に䟿利です。

基本的な手順

  1. onOpen()でメニュヌを自動䜜成
  2. で項目を远加.addItem()やで.addSubMenu()項目を远加
  3. .addToUi()でUIに反映
  4. 必芁に応じお、サブメニュヌ・条件分岐・自動化機胜を远加

これであなたのスプレッドシヌトは、業務効率を倧幅にアップさせる匷力なツヌルになりたす

コメント

タむトルずURLをコピヌしたした