【GAS】スプレッドシートを開くといきなり最下行にする方法(onOpen)

基礎講座

GAS応用の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】手軽にシート名を取得する方法 GETSHEETNAME (Gスプレッドシート)
残念ながら、スプレッドシートでは、 CELL関数で"filename"がサポートされていません。 なのでスプレッドシートは、GASを使用しないと シート名を取得する事ができないのです。

今回は、とっても価値の高い方法をお伝えします。

これを知ることであなたは、

  • スプレッドシートを開いたときに自動的に動作(自動起動)させる方法がわかります。
  • 最下行にカーソルを移動させる方法がわかります。
  • 自由自在に自動的にカーソルを移動させることができます。

という状態になります。


逆に、知らないと

毎回、スプレッドシートを開いたあと、
まずは、「カーソル位置を最下行に移動させる」
という、「非生産的」で「不毛」な作業を
永遠に強いられることになります。

なので、一刻も早く、今回の手法を取り入れて
非生産的な作業から脱却してください。

そして

こんな、アドバイスをしてあげてください。


では、マインドセットします。

マインドセット
同じ作業を何度もするやつはバカ

何度か、同じ作業が続いたら
なにかしら改善策がないか考えてください。

必ずそこには、お宝が眠っています。

では、今回の動画です。

動画はこちら

 

開くと動くスクリプト

動画では、サラッと流していますが

function onOpen(){
}

っていう関数を作れば、いいだけです。

シートを開くとonOpen()が勝手に動き出します。

function onOpen(){
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheet = ss.getActiveSheet()

//最下行
// let lr = sheet.getLastRow() + 1
// sheet.setActiveSelection("A" + lr)

//Ctrl+↓で移動させる
sheet.getRange('A2').activate()
sheet.getCurrentCell().getNextDataCell( SpreadsheetApp.Direction.DOWN).activate()
sheet.getActiveCell().offset(1,0).activate()


}

では、今回のGoogleシートマスターへの究極の方法です。

Step1.
スプレッドシート上で
Ctrl+↓を押してカーソルがどこに移動するか確認する

Step2.

目的の箇所であれば、GASに組み込む

Step3.

getLastRow()でよければ、getLastRow()にする

Step4.

関数名をonOpen()にする

Step5.

開いて動作することを確認する

では、早速、スプレッドシート上で「Ctrl+↓」を行ってください
今すぐです。

最後までご覧いただきありがとうございます。

つぎはこちら

【GAS】半角文字列を全角文字列に変換する方法(ExcelのJIS関数) (Gスプレッドシート)
コピペで半角文字列を全角文字列に変換できる関数が作れます。

 

「【GAS基礎講座 20.】 新スクリプトエディタ 完全攻略」
「【GAS】入力が30倍早くなる スクリプトエディタ ショートカットキー」

 

GAS応用の一覧

コメント

  1. MATT より:

    こんにちわ
    いつも貴重な情報をありがとうございます。
    ひろしさんのサイトで勉強して仕事で利用させてもらって、会社では神扱いされている素人スプレッダーです笑

    今回相談したいことは「日報シートのタイトルを自動化したい」ということです。

    【参考シート】
    https://docs.google.com/spreadsheets/d/1BaYGKv-L56m-H-m19Q95djWIlCPKfDigY3QdvYzku6I/edit?usp=sharing

    この日報シートに共有している4人が一日の作業内容を入力していき、日報として利用しています。
    また過去の作業を確認するためのツールとしても使っています。(どの作業を何日にやったか?等)

    現在、日報シート+リストシートで利用しているのですが、
    出勤してから3・4行目をコピーして最終行に貼り付け、今日の日付を入力して利用しています。
    作業内容を入力するとA列に今日の日付が入るようになっています。
    またシートを開いたときに自動で今日の位置にジャンプするスクリプト(「リスト」のD列参照)を入れています。
    これは今日の日付が入力されていないと機能しません。

    ここで本題なのですが、3・4行目をコピーして最下部に挿入という作業を
    0時にトリガーを発動させ自動化しようと思い、(スクリプト)を組みました。
    「タイトル」シートを書式丸ごとコピーし、日報シートに挿入させたかったのですが、
    知識不足でわからず、半年ほど悩んでおります。

    なんとか実現できないでしょうか。

    (スクリプト)の内容では、データが入っている最終行を取得しているので、
    A列に仕込んでいる関数が邪魔です。
    できればA列の仕掛けは残したまま、作業内容の最終行を取得出来たらいいのですが、
    最悪なくてもいいです。

    よろしくお願いいたします。

タイトルとURLをコピーしました