GASでシート名を指定してアクティブ化(選択状態)にする方法

本記事では、GASでシート名を指定してアクティブ化する方法を解説しています。

今回のコードを使ったサンプル動画

GASでアクティブ化
目次

シートのアクティブ化について

シートのアクティブ化とは、現在開いている状態にすることです。シートが1枚の場合は必然的にそのシートがアクティブな状態になります。

また、アクティブな状態のシートを指定することも可能です。例えば、毎日決まった処理をするスクリプトを組んでいた場合、そのとき開いているシートが想定と違うとエラーになってしまう可能性があります。

意図しないエラーを防ぐためにも、トリガーで実行する際はシート名を指定してアクティブ化を行いましょう。

GASでシート名を指定してアクティブ化する

function gas_sheet_active() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート名を指定');
  sheet.activate();
}

シートのアクティブ化をするために、まずはシート名を指定してシートオブジェクトを取得する必要があります。(2行目)

そして、指定したシートをアクティブ化するためにはactivateメソッドを使用します。(3行目)

シートをアクティブ化するサンプル動画のコード全体像

動画では、メニューからシート名を指定してアクティブ化しています。以下のコードの全体像を記載していますので、お好みにカスタマイズして活用してください。

function m_gas_sheet_active() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet();
  const activeSheetName = Browser.inputBox("アクティブにしたいシート名を入力してください。", Browser.Buttons.OK_CANCEL);

  sheet.getSheetByName(activeSheetName).activate();
}

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  const menu = ui.createMenu("シート操作");

  menu.addItem("新規作成","m_gas_sheet_create_1");
  menu.addItem("コピー","m_gas_sheet_copy");
  menu.addSubMenu(
    ui.createMenu('削除')
    .addItem("特定のシートを削除","m_gas_sheet_delete_1")
    .addItem("特定のシート以外を削除","m_gas_sheet_delete_2")
    .addItem("特定の複数シートを削除","m_gas_sheet_delete_3")
    .addItem("特定の複数シート以外を削除","m_gas_sheet_delete_4")
     .addItem("全てのシートを削除","m_gas_sheet_delete_5")
  );
  menu.addItem("アクティブ化","m_gas_sheet_active");

  menu.addToUi();
}

シートのアクティブ化以外のコードについては以下の記事にそれぞれまとめています。気になる方はぜひチェックしてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
目次