📃

【GAS】シート名をセルから取得する

2022/08/01に公開

はじめに

スプレッドシートにて、シート内にシート名を入力するセルがあり、そのセルの値を変更した際にシート名も自動で変えたかったので、方法をメモ。

内容

以前、シートを編集した際に更新日時を自動で更新する方法を記載したが、その方法と似ている。
(参考)【GAS】シートの最終更新日を自動入力する

シート名の自動更新
function getUpdateTime(e){
  const range = e.range;
  const sheet = range.getSheet();

  if(range.getRow() == 3 && range.getColumn() == 11){
    sheet.getRange('K5').setValue(Utilities.formatDate(new Date(), "Asia/Tokyo", "yyyy-MM-dd"));
    sheet.setName(sheet.getRange('K3').getValue());
  }
}

詳細

まず、セルを編集した際に呼ばれる関数を適当に作成する。
その関数にて、編集したセルの位置が指定したセルに一致したなら、シート名をsheet.setName()にて設定する。

1つ注意しておきたいのは、この関数が呼ばれるのはどうやらセルを編集した後らしいので、編集したシート名が特定のシート名と一致したなら、~のような条件をif文の条件に含めてしまうとif文に入らなくなってしまうことだ。

まとめ

まとめると、セル編集時にsheet.setName()を呼ぶことでシート名を変更できる。
セルに入力するだけで自動で何かを更新できるようになると、ユーザにとっては便利になることが多いはずなので、今後も調べつつメモしていこうかと思う。

Discussion