Googleスプレッドシートでシート名を取得・変更する方法

スプレッドシートでシート名を取得・変更する方法

スプレッドシートではCELL関数の検査の種類に filename がないため、シート名を関数で取得することはできません。そこで今回はGAS(Google Apps Script)を使って、シート名を取得する関数やシート名を変更する関数を作成する方法をご紹介します。

スポンサーリンク

シート名を取得する方法

スプレッドシートでシート名を取得・変更する方法

まず[拡張機能]タブから、[Apps Script]を開きます。

スクリプトエディタに入力するコードは、以下の通りです。functoin の後ろの sheetname() 部分が、シート名を取得するときに入力するオリジナルの関数名になります。

function sheetname() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}
スプレッドシートでシート名を取得・変更する方法

コードが入力できたら[プロジェクトを保存]から保存し、[実行]を押します。

初めて実行する場合は承認が求められるので、[権限を確認]をクリックしてください。

スプレッドシートでシート名を取得・変更する方法

ログイン画面から自身のアカウントを選択し、左下の[詳細]をクリックします。

スプレッドシートでシート名を取得・変更する方法

次に[無題のプロジェクト(安全ではないページ)に移動]をクリックし、[許可]を押します。

スプレッドシートでシート名を取得・変更する方法

シートに戻って作成した関数名 sheetname() を入力すると、現在のシート名が取得できました。

スポンサーリンク

シート名を変更する方法

スプレッドシートでシート名を取得・変更する方法

ファイルを追加(+)から[スクリプト]を選択し、新しく関数を作成します。

シート名を変更するコードは、以下の通りです。今回は A1 セルの値を取得してシート名に設定するので、getRange(1,1) としています。

function setsheetname(){  
  let value = SpreadsheetApp.getActiveSheet().getRange(1,1).getValue(); 
  SpreadsheetApp.getActiveSheet().setName(value); 
}
スプレッドシートでシート名を取得・変更する方法

コードが入力できたら、一旦プロジェクトを保存します。

次にサイドメニューの[トリガー]から、[トリガーを追加]をクリックしてください。実行する関数名を選択し、イベントの種類は[変更時]に設定して保存します。

スプレッドシートでシート名を取得・変更する方法

シートに戻って A1 セルから内容を変更すると setsheetname() が実行され、シート名が自動で更新されました。

スプレッドシートでシート名を取得・変更する方法

実用例を 1 つご紹介します。

まず、[合計]シートにそれぞれのシート名をセル参照で一覧表示させます。

スプレッドシートでシート名を取得・変更する方法

次にINDIRECT関数で、それぞれのシート名を参照させます。

例えば INDIRECT(A2&”!B7″) ならセル参照の文字列は 20234月!B7 になるので、 [2023年4月]シートの B7 セルから値を返します。

INDIRECT関数の構成要素:(参照文字列, [参照形式])

スプレッドシートでシート名を取得・変更する方法

それぞれのシート名を変更すると、該当のシート名と[合計]シートのシート名が更新されます。

このとき一度エラーになりますが、数式を入れなおすと解消されます。

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