【GAS】シートを開いたときに特定のセルを検索しアクティブにする方法(Gスプレッドシート)

基礎講座

GAS基礎講座一覧

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

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

前回

【GAS】チェックされた行を一気に非表示にする方法
GAS基礎講座一覧 ご訪問ありがとうございます。 Googleシートマスターのひろしです。 前回 今回は、とっても価値の高い方法をお伝えします。 これを知ることであなたは、 GASの変更方...

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


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

  • GAS内で文字列を検索する方法がわかります。
  • セルを移動させる方法がわかります。
  • シートを開いたときにコマンドを実行する方法がわかります。

なので、サクッとマスターして

と答えてあげてください。

動画はこちら

【GAS】シートを開いたときに特定のセルをアクティブにする方法(再アップ)

 

 

スクリプト

 

function onOpen() {
  // function testactive() {
  const ss = SpreadsheetApp.getActiveSpreadsheet()
  const sh = ss.getSheetByName('横並び').activate()


  let today = new Date()
  // today = Utilities.formatDate(today,'JST','yyyy/MM/dd')
  today = Utilities.formatDate(today, 'JST', 'yyyy年M月d日')
  console.log(today)


  let textFinder = sh.createTextFinder(today);//テキストの検索
  let ranges = textFinder.findAll();


  if (ranges.length > 0) {
    ranges[0].activate()
  }


  // let ncont = ranges.length;//個数の取得
  // console.log( "個数=",ncont);
  // for( i=0;i<ncont;i++){
  // console.log( ranges[i].getA1Notation());
  // ranges[i].activate()
  // }


  console.log(ranges[0].getRow())
  sh.getRange(ranges[0].getRow(), 7).setValue(today)


}

 

 

 

ポイント

onOpen: スプレッドシートを開くとここに飛んできます。

横並び: シート名を変更する場合は、ここを変更してください。

 

ranges[0].activate()

検索結果が複数ある場合は、先頭セルがアクティブになります。

一番最後をアクティブにしたい場合は、

ranges[ranges.length-1].activate()

とやれば、最終位置がアクティブになります。

 

 

 

コメント

  1. ますだともみ より:

    いつもこちらで学ばせて頂いたています。
    GAS初心者です。
    こちらのスクリプトで業務改善を行っていますが、このアクティブなセルに色をつけたいです。

    sh.getRange(〇〇).setBackground(‘red’);

    このようなスクリプトをどこかに記述するべきだと思うのですが、どこにどのように書いていいかわかりません。

    よろしければ教えていただけませんか?

    • hiroshi より:

      ますだともみさん
      コメントありがとうございます。

      getRange(〇〇)の〇〇がわかってさえいれば、
      どこで呼んでもいいですよ。

      大丈夫です!

      色んなところで呼んでみてください。

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