みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
初心者向けのGoogle Apps Script入門シリーズとして、Botの作り方を通してGASプログラミングの基礎をお伝えしています。
前回の記事はこちら。
Spreadsheetサービスのオブジェクトの基本についてお伝えしました。
さて、今回はその続きとしてGoogle Apps Scriptでスプレッドシートからシートを取得する2つの方法をお伝えします。
では、行ってみましょう!
目次 [閉じる]
前回のおさらいと今回のお題
題材としているスプレッドシートは以下のような名言を集めたリストです。
例えば、このスプレッドシートのシート1のA3セルの値を取得したいのであれば、以下の手順を踏む必要があります。
- スプレッドシート「名言Bot」をSpreadsheetオブジェクトとして取得する
- そのSpreadsheetオブジェクトの配下にあるシート「シート1」をSheetオブジェクトとして取得する
- そのSheetオブジェクトの配下にあるA3セルをRangeオブジェクトとして取得する
- そのRangeオブジェクトの値を取得する
そこで前回、その手始めとして以下のようなスクリプトを作成して、スプレッドシート「名言Bot」を取得してそのスプレッドシート名をログ出力することには成功しました。
今回は、その手順の2番目。シートを取得する方法について考えてきます。
シート名を指定してシートを取得する
シートを取得する方法にはいくつありますが、その方法の一つとしてシート名を指定してシートを取得する方法があります。
getSheetByNameメソッドを使います。
書式はこちらです。
シート名からシートを取得するスクリプト
例えば、今回の例では、以下のようなスクリプトで、シートを取得しそのシート名をログ出力することができます。
なお、SheetオブジェクトのgetNameメソッドは、シート名を取得するメソッドです。
また、Spreadsheetオブジェクトを変数で使う機会が他にないのであれば、以下のようにステートメントをひとまとめにすることもできます。
シート名はユーザーが変更できるので注意
ただし、getSheetByNameメソッドでシートオブジェクトを取得するスクリプトを作成したのであれば、一点、運用で気をつけなければならない点があります。
それは、ユーザーがシート名を変更しないようにするということです。
というのも、スクリプトではシート名でSheetオブジェクトを取得しているわけですから、シート名を変更すると、Sheetオブジェクトの取得ができなくなり、スクリプトが正しい動作をしなくなることがあります。
スプレッドシートを操作するスクリプトを作成するときには、ユーザーの干渉の影響を受ける可能性があるか、また、その干渉を受けないようにするためには、どのようにしたらいいのか、ということを考慮する必要がありますので、その点を念頭に置いておきましょう。
アクティブなシートを取得する
さて、コンテナバインドスクリプトであり、かつ、スプレッドシートに含まれるシートがひとつであるならオススメできる、別の方法があります。
ユーザーの干渉を受けにくく、かつ、SpreadsheetAppから一足飛びにシート取得しに行くことができるという、メリット満載の方法です。
それは、アクティブなシートを取得するgetActiveSheetメソッドを使うという方法です。
このメソッドはSpreadsheetAppオブジェクトからいきなり使うことができ、以下のように書きます。
アクティブシートのシート名をログ出力するスクリプト
例えば、以下のようなスクリプトでアクティブシートのシート名をログ出力することができます。
なお、複数のシートがスプレッドシートに含まれている場合は、どのシートが「アクティブ」なのかをコントロールするのが難しくなりますので、シート名などで取得したほうが安全かも知れません。
まとめ
以上、Google Apps Scriptでスプレッドシートのシートを取得する方法についてお伝えしました。
- getSheetByNameメソッドでシート名を指定してシートを取得する
- getActiveSheetメソッドでアクティブシートを取得する
という二つの方法がありました。
いずれもケースによってはユーザーの干渉の影響を受けますので、シートの構成や運用方法を踏まえてセレクトするようにしましょう。
次回は、セルの取得方法についてお伝えします。
どうぞお楽しみに!
連載目次:超初心者向けGASでBotを作りながら基礎を学ぶ
Google Apps Script(GAS)をはじめるためのメリットは山程ありますが、何を作ったらいいの?と悩んでしまうこともありますよね。そんな時に、おすすめしたいのが「Bot」の作成です。このシリーズでは、超初心者向けにGASでBotを作る方法を題材としながら、GASプログラミングの一通りの流れと書き方について学んでいきます。- 【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く
- 【初心者向けGAS】はじめてのスクリプトを作成し、保存し、実行する
- 【初心者向けGAS】プログラミングに必須の変数の使い方とデータ型について
- 【初心者向けGAS】ログを表示するLogger.logの使い方
- 【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために
- 【初心者向けGAS】Spreadsheetサービスの「オブジェクト」の基礎の基礎を知ろう
- 【初心者向けGAS】スプレッドシートのシートを取得する2つの方法