今回はGoogleAppsScriptでアクティブシートを取得する基本的な書き方から、
シート名やシートの位置を指定してアクティブシートを変更する方法を解説します。
アクティブシートを取得する方法
はじめに、アクティブシートを取得する方法について解説します。
アクティブシートは、次のように書くことで取得することができます。
function myFunction() { var activeSheet = SpreadsheetApp.getActiveSheet(); Logger.log(activeSheet.getName()); }
SpreadsheetAppのgetActiveSheet関数を使うことによって、アクティブシートを取得することができます。
getName()関数を使うことによって、対象となっているシート名を確認することができるので、
意図通りのシートが取得することができているかの確認に便利です。
ただ、スプレッドシートを使っていると、
操作したいシートはスプレッドシートを開いた時のシート(初期アクティブシート)となることはあまりないかと思います。
そんな時には、操作したいシートを変更する必要があります。
なので、操作したいシートを変更する方法を次に解説します。
アクティブシートを変更(指定)する方法
アクティブシートを変更でよく使うのには2つのパターンがあります。
- シート名で指定
- シートの位置で指定
ある固定のシート名であれば、シート名のほうが楽なのですが、
シートが新規で追加されていて、一番左端の新規シートを操作したいといった場合には
シートの位置で取得する方法が便利です。
シート名でアクティブシートを変更
シート名で指定する場合には、次のように書くことで取得することができます。
function myFunction() { var spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); var activeSheet = spreadSheet.getSheetByName("シート3"); Logger.log(activeSheet.getName()); }
少し記述が増えましたが、まずはgetActiveSpreadsheet関数を使うことによってスプレッドシートを取得します。
そのスプレッドシートの中からシート名でとってくるときにgetSheetByName()を使うことによって、
指定したシート名のシートを取得することができるようになります。
シートの位置でアクティブシートを変更
シートの位置で指定する場合には、次のように書くことで取得することができます。
function myFunction() { var spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); var activeSheet = spreadSheet.getSheets()[0]; Logger.log(activeSheet.getName()); }
まず、スプレッドシートを取得してくるところはシート名で指定する場合と同様です。
その次に、getSheets()関数を使うことによってシートの一覧を取得してきます。
[]の中の数字で何番目のシートを取ってくるかと指定しています。
ここで注意なのが、0を指定すると1番目のシートを取得しています。
2と指定すれば、3番目を取ってくるような感じです。
1ずれていると理解していただければと思います。
まとめ
アクティブシートを取得するには、複雑でないスプレッドシートであれば getActiveSheetを使う。
運用上、シートが複数にまたがったり、作業したいシートが切り替わる場合にはシートや位置を指定して使う。
シートを指定する場合にはgetSheetByName、位置を指定する場合にはgetSheetsを使う。