メディア掲載: レバテックフリーランス様のサイトで当ブログが紹介されました

GAS: シートを取得する方法

Google Apps Scriptでスプレッドシートの各シートを操作する場合、最初に対象のスプレッドシートを取得し、次に、対象のシートを取得する必要があります。

この記事では、シートを取得する方法(コード)を紹介します。

シート名を指定して取得する

シート名を指定してシートを取得します。
シート名が変更されていたりすると、もちろんシートが取得できなくなってしまいますので、注意して運用する必要があります。

const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadSheet.getSheetByName('シート名');

(左からみた)順番を指定して取得する

すべてのシートのうちの左からn番目のシート・・・というように、シートの位置を指定して取得することもできます。
シートの並び順が変わってしまうと、取得されるシートも変わってしまいますので、注意して運用する必要があります。

最初にgetSheetsメソッドですべてのシートを配列として取得し、その配列の添字を指定してシートを取得する形になります。

const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const sheets = spreadSheet.getSheets();  // すべてのシートを配列で取得
const sheet = sheets[2];  // 左から3番目のシートを取得

Google Apps Scriptにおける配列0番から始まるため、一番左のシートを取得する場合はsheets[0]、左から2番目のシートを取得する場合はsheets[1]、左から3番目のシートを取得する場合はsheets[2] …というように指定します。

アクティブなシートを取得する

スプレッドシートに紐づいているスクリプト(コンテナバインドスクリプト)では、そのスプレッドシートで現在アクティブなシートを取得できます。

const sheet = SpreadsheetApp.getActiveSheet();  // アクティブなシートを取得

Apps Scriptは様々な実行方法(エディタの▷実行ボタン、図形クリック、カスタムメニュー、トリガー、WEBアプリ…など)がありますが、基本的には、実行時に表示しているシートが取得されます。

スクリプトエディタをブックマーク等から直接起動して▷実行した場合、時間主導型トリガーで実行した場合、WEBアプリから実行した場合は、どのシートがアクティブか判別できないため、最も左のシートが取得されます。

また、フォーム送信時のトリガーで実行した場合は、フォームが紐づいているシートが取得されます。

シートを取得することによって可能になること

ここまで紹介してきたコードによって、スプレッドシート内のシートを取得することができました。

これによって、シートの名前を変更したり、行や列を追加・削除したり、コピーを作成したり・・・と、様々な操作をスクリプトで行うことができるようになります。

以下はほんの一例ですが、行うことができる処理(メソッド)を紹介します。

メソッド説明使用例
getName()シートの名前を取得する。Logger.log(sheet.getName())
setName()シートの名前を変更する。sheet.setName('変更後のシート名')
appendRow(rowContents)シート内のデータの末尾に新たなデータ(行)を追加する。sheet.appendRow(['太郎', '経理部', '男']);
deleteRow(rowPosition);指定した行を削除する。
最初の行は 1 です。
sheet.deleteRow(2)
deleteColumn(columnPosition)指定した列を削除する。
最初の列は 1 です。
sheet.deleteColumn(2)
getLastRow()コンテンツが含まれている最後の行の番号を取得する。const lastRow = sheet.getLastRow()
getLastColumn()コンテンツが含まれている最後の列の番号を取得する。const lastColumn = sheet.getLastColumn()

他にも様々なメソッドがありますので、必要に応じて公式のリファレンスを参照してください。

また、より細かくセルの値を取得・更新したり、シートを取得した後、更に範囲を取得する必要があります。

その方法については、こちらの記事にまとめましたので、ぜひご覧ください。

コメント

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