教えて!GAS!

GASの基礎知識・書き方について紹介します。

Google Apps ScriptでのSpreadsheetサービスのSpreadsheetクラスの種類

Spreadsheetクラスは、スプレッドシートを操作する機能を提供するクラスです。スプレッドシート自体の情報提供やシートを取得したり作成したりする等のメンバーが提供されています。

メンバー一覧

主な種類を紹介します。

メンバー 説明
addDeveloperMetadata(メタデータ) スプレッドシートに開発者メタデータを追加します
addMenu(メニュー名, メニュー項目) カスタムメニューをスプレッドシートに追加します
copy(コピー先名) スプレッドシートをコピーし、新しいシートを作成します
deleteActiveSheet() 現在アクティブなシートを削除します
duplicateActiveSheet() 現在アクティブなシートを複製します
getActiveCell() 現在アクティブなセルを取得します
getActiveRange() 現在アクティブな範囲を取得します
getActiveSheet() 現在アクティブなシートを取得します
getId() スプレッドシートのIDを取得します
getName() スプレッドシートの名前を取得します
getNumSheets() スプレッドシート内のシート数を取得します
getRangeByName(範囲名) 名前付き範囲を取得します
getSheets() スプレッドシート内の全てのシートを取得します
rename(新しい名前) スプレッドシートの名前を変更します
setActiveSheet(シート, インデックス) 指定したシートをアクティブにします
show(シート) 指定したシートを表示します
toast(メッセージ, タイトル, タイプ) スプレッドシートのUIにメッセージを表示します
deleteSheet(シート) 指定したシートを削除します
getRange(開始行, 開始列, 行数, 列数) 指定した範囲を取得します
moveActiveSheet(インデックス) アクティブなシートを指定した位置に移動します

プログラミング例

具体的なプログラミング例を紹介します。

addDeveloperMetadata(メタデータ)

function メタデータを追加() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  スプレッドシート.addDeveloperMetadata('プロジェクト', '学習シート');
  Logger.log('メタデータを追加しました');
}

addMenu(メニュー名, メニュー項目)

function メニューを追加() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  スプレッドシート.addMenu('カスタムメニュー', [{name: '項目1', functionName: '項目1処理'}]);
  Logger.log('メニューを追加しました');
}

copy(コピー先名)

function シートをコピー() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  スプレッドシート.copy('新しいシート');
  Logger.log('シートをコピーしました');
}

deleteActiveSheet()

function アクティブシートを削除() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let シート = スプレッドシート.getActiveSheet();
  スプレッドシート.deleteActiveSheet();
  Logger.log('アクティブシートを削除しました');
}

duplicateActiveSheet()

function アクティブシートを複製() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let 複製 = スプレッドシート.duplicateActiveSheet();
  Logger.log('アクティブシートを複製しました');
}

getActiveCell()

function アクティブセルを取得() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let アクティブセル = スプレッドシート.getActiveCell();
  Logger.log('アクティブセル: ' + アクティブセル.getA1Notation());
}

getActiveRange()

function アクティブ範囲を取得() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let アクティブ範囲 = スプレッドシート.getActiveRange();
  Logger.log('アクティブ範囲: ' + アクティブ範囲.getA1Notation());
}

getActiveSheet()

function アクティブシートを取得() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let アクティブシート = スプレッドシート.getActiveSheet();
  Logger.log('アクティブシート名: ' + アクティブシート.getName());
}

getId()

function スプレッドシートIDを取得() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let ID = スプレッドシート.getId();
  Logger.log('スプレッドシートID: ' + ID);
}

getName()

function スプレッドシート名を取得() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let 名前 = スプレッドシート.getName();
  Logger.log('スプレッドシート名: ' + 名前);
}

getNumSheets()

function シート数を取得() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let シート数 = スプレッドシート.getNumSheets();
  Logger.log('シート数: ' + シート数);
}

getRangeByName(範囲名)

function 名前で範囲を取得() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let 範囲 = スプレッドシート.getRangeByName('データ範囲');
  Logger.log('範囲: ' + 範囲.getA1Notation());
}

getSheets()

function シート一覧を取得() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let シート一覧 = スプレッドシート.getSheets();
  for (let シート of シート一覧) {
    Logger.log('シート名: ' + シート.getName());
  }
}

rename(新しい名前)

function スプレッドシートをリネーム() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  スプレッドシート.rename('新しいシート名');
  Logger.log('スプレッドシート名をリネームしました');
}

setActiveSheet(シート, インデックス)

function アクティブシートを設定() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let シート = スプレッドシート.getSheets()[0];
  スプレッドシート.setActiveSheet(シート, true);
  Logger.log('アクティブシートを設定しました');
}

show(シート)

function シートを表示() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let シート = スプレッドシート.getSheets()[0];
  シート.show();
  Logger.log('シートを表示しました');
}

toast(メッセージ, タイトル, タイプ)

function トースト通知を表示() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  スプレッドシート.toast('処理が完了しました', '完了通知', 5);
  Logger.log('トースト通知を表示しました');
}

deleteSheet(シート)

function シートを削除() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  let シート = スプレッドシート.getSheets()[0];
  スプレッドシート.deleteSheet(シート);
  Logger.log('シートを削除しました');
}

getRange(開始行, 開始列, 行数, 列数)

function 範囲を取得() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let 範囲 = スプレッドシート.getRange(1, 1, 3, 3);
  Logger.log('取得した範囲: ' + 範囲.getA1Notation());
}

moveActiveSheet(インデックス)

function アクティブシートを移動() {
  let スプレッドシート = SpreadsheetApp.getActiveSpreadsheet();
  スプレッドシート.moveActiveSheet(2);
  Logger.log('アクティブシートを移動しました');
}

まとめ

Spreadsheetクラスは、Googleスプレッドシートを操作するための基本的なクラスです。これを使うことで、スプレッドシートのデータを読み取ったり、編集したり、シートそのものを管理することができます。各メンバーの役割と使用例を理解することで、効率的なスプレッドシート管理が可能になります。