💪

【GAS】スプシを操作するメソッドあれこれ

2024/07/07に公開

はじめに

お疲れ様です。
おおくまです。

今回は、「【GAS】スプシを操作するメソッドあれこれ」ということで、GASGoogleスプレッドシートを操作するメソッドをまとめてみました。
少しでも皆様の参考になりますと幸いです。

対象読者

注意点

GASとは

GASとは、GoogleAppsScriptの略で、Googleによって開発されたスクリプトプラットフォームです。
Googleが提供する各種サービスの自動化や連携を行うためのアプリケーションを開発するためのツールとして活用されます。
GASで使用するスクリプト言語は、JavaScriptをベースに作られています。
基本的な文法はJavaScriptと同じなので、JavaScriptを使ったことのある方であれば比較的簡単に使いこなせると思います。

https://satori.marketing/marketing-blog/gas-introduction/

弊社でもGASを使用して、様々な業務の自動化・効率化を行っています。

スプシを操作するメソッド

スプシを取得する

現在開いているスプレッドシートを取得する
function getSpreadsheet() {
  return SpreadsheetApp.getActiveSpreadsheet();
}
IDを指定してスプレッドシートを取得する
function getSpreadsheetById(id) {
  return SpreadsheetApp.openById(id);
}
URLを指定してスプレッドシートを取得する
function getSpreadsheetByUrl(url) {
  return SpreadsheetApp.openByUrl(url);
}

シートを取得する

現在開いているシートを取得する
function getActiveSheet() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
}
シート名を指定してシートを取得する
function getSheetByName(sheetName) {
  return SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
}
シート名を指定してシートを取得する(存在しない場合は新規作成)
function getSheetByNameOrCreate(sheetName) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  if (!sheet) {
    sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet(sheetName);
  }
  return sheet;
}
シート名に部分一致する全てのシートを配列で取得する
function getSheetsByNameContains(sheetName) {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  return sheets.filter(function(sheet) {
    return sheet.getName().indexOf(sheetName) !== -1;
  });
}
シートのインデックスを指定してシートを取得する
function getSheetByIndex(index) {
  return SpreadsheetApp.getActiveSpreadsheet().getSheets()[index];
}

シートを追加する

シートを追加する
function addSheet() {
  return SpreadsheetApp.getActiveSpreadsheet().insertSheet();
}
シート名を指定してシートを追加する
function addSheet(sheetName) {
  return SpreadsheetApp.getActiveSpreadsheet().insertSheet(sheetName);
}
インデックスを指定してシートを追加する
function addSheetWithIndex(index) {
  return SpreadsheetApp.getActiveSpreadsheet().insertSheet(index);
}

シートを削除する

現在開いているシートを削除する
function deleteSheet() {
  return SpreadsheetApp.getActiveSpreadsheet().deleteActiveSheet();
}
シート名を指定してシートを削除する
function deleteSheet(sheetName) {
  return SpreadsheetApp.getActiveSpreadsheet().deleteSheet(getSheetByName(sheetName));
}

function getSheetByName(sheetName) {
  return SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
}
インデックスを指定してシートを削除する
function deleteSheetByIndex(index) {
  return SpreadsheetApp.getActiveSpreadsheet().deleteSheet(getSheetByIndex(index));
}

function getSheetByIndex(index) {
  return SpreadsheetApp.getActiveSpreadsheet().getSheets()[index];
}

シートをコピーする

現在開いているシートをコピーする
function copySheet() {
  return SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
}
シート名を指定してシートをコピーする
function copySheetByName(sheetName, newSheetName) {
  var sheet = getSheetByName(sheetName);
  var newSheet = sheet.copyTo(SpreadsheetApp.getActiveSpreadsheet());
  newSheet.setName(newSheetName);
  return newSheet;
}

function getSheetByName(sheetName) {
  return SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
}
インデックスを指定してシートをコピーする
function copySheetByIndex(index, newSheetName) {
  var sheet = getSheetByIndex(index);
  var newSheet = sheet.copyTo(SpreadsheetApp.getActiveSpreadsheet());
  newSheet.setName(newSheetName);
  return newSheet;
}

function getSheetByIndex(index) {
  return SpreadsheetApp.getActiveSpreadsheet().getSheets()[index];
}

シートを並び替える

シートをシート名の昇順で並び替える
function sortSheetsByNameAsc() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = spreadsheet.getSheets();
  sheets.sort(function(a, b) {
    return a.getName().localeCompare(b.getName());
  });
  for (var i = 0; i < sheets.length; i++) {
    spreadsheet.setActiveSheet(sheets[i]);
    spreadsheet.moveActiveSheet(i + 1);
  }
}
シートをシート名の降順で並び替える
function sortSheetsByNameDesc() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = spreadsheet.getSheets();
  sheets.sort(function(a, b) {
    return b.getName().localeCompare(a.getName());
  });
  for (var i = 0; i < sheets.length; i++) {
    spreadsheet.setActiveSheet(sheets[i]);
    spreadsheet.moveActiveSheet(i + 1);
  }
}

セルに値を入力する

セルに値を入力する
function setCellValueInActiveSheet(cellAddress, value) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange(cellAddress).setValue(value);
}

セルにハイパーリンクを設定する

セルにハイパーリンクを設定する
function setHyperlinkInActiveSheet(cellAddress, url, label) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange(cellAddress).setFormula('=HYPERLINK("' + url + '","' + label + '")');
}

セルの値を取得する

セルの値を取得する
function getCellValueInActiveSheet(cellAddress) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  return sheet.getRange(cellAddress).getValue();
}

セルの値をクリアする

セルの値をクリアする
function clearCellValueInActiveSheet(cellAddress) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange(cellAddress).clearContent();
}

セルの値をコピーする

セルの値をコピーする
function copyCellValueInActiveSheet(fromCellAddress, toCellAddress) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var value = sheet.getRange(fromCellAddress).getValue();
  sheet.getRange(toCellAddress).setValue(value);
}

セルを結合する

セルを結合する
function mergeCellsInActiveSheet(startRow, startColumn, numRows, numColumns) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange(startRow, startColumn, numRows, numColumns).merge();
}

セルの背景色を設定する

セルの背景色を設定する
function setBackgroundColorInActiveSheet(cellAddress, color) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange(cellAddress).setBackground(color);
}

セルの文字色を設定する

セルの文字色を設定する
function setFontColorInActiveSheet(cellAddress, color) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange(cellAddress).setFontColor(color);
}

セルのフォントサイズを設定する

セルのフォントサイズを設定する
function setFontSizeInActiveSheet(cellAddress, fontSize) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange(cellAddress).setFontSize(fontSize);
}

最後に

今回は、GASGoogleスプレッドシートを操作するメソッドをまとめてみました。
例えば、APIで取得したデータをGoogleスプレッドシートに書き込む際に、上記のメソッドを使用することで、効率的に処理を行うことができます。
ぜひ、使用してみてください。
最後まで読んでいただきありがとうございました。

参考文献

https://caymezon.com/gas-ss-methods-list/

https://qiita.com/mitama/items/e5fbf8306384c26cf42f

https://qiita.com/mori_goq/items/449ece2ca2178cff1fa7

GitHubで編集を提案
株式会社リンクエッジ

Discussion