概要
アクティブなセルへ移動させる動きを実装しようとしてハマってしまったので備忘録として記載。
達成したいこと
・スプレッドシート上に設置したボタンを押したら現在のアクティブなセルに画面を移動させる
#スクリプト
期待した出力にならないスクリプト
main.gs
function moveActiveCell(){
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var ss = spreadSheet.getActiveSheet();
var activeCell = ss.getActiveCell();
var activeColumn = activeCell.getColumn();
var activeRow = activeCell.getRow();
ss.getRange(activeRow , activeColumn).activate();
}
上記のコードはスクリプトとしては正しいコードであるが、
現在のアクティブセルを取得して、そのセルをアクティブにしているだけなので
画面をアクティブなセルに移動させることはできない。
今回は厳密に特定のセルをアクティブにしたいという要件ではなく
画面を移動させれば良いという要件であったため下記のように実装した。
期待した出力のスクリプト(1例)
main.gs
function moveActiveCell(){
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var ss = spreadSheet.getActiveSheet();
var activeCell = ss.getActiveCell();
var activeColumn = activeCell.getColumn();
var activeRow = activeCell.getRow();
ss.getRange(activeRow + 1 , activeColumn).activate();
}
上記のように実装すれば期待通りにアクティブなセル(の近くに)画面が移動するようになる。
以上