本記事では、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();
}
シートのアクティブ化以外のコードについては以下の記事にそれぞれまとめています。気になる方はぜひチェックしてみてください。