【GAS GoogleAppsScript | スプレッドシート】GASでスプレッドシートを操作する(Sheetクラス)

スポンサーリンク

GASでスプレッドシートを操作する

前回、前々回で、GASでスプレッドシートを操作するための一番元となるSpreadsheetAppクラスとその配下のSpreadsheetクラスについて紹介しました。

今回は、Spreadsheetクラスの更に一つ下の階層のSheetクラスについて紹介します!

Sheetクラス

階層で言うと3番目のところですね(^^)

Sheetクラスのメンバー

まずはSheetクラスの主なメンバーです。いっぱいあります(^^)

メンバー 戻り値 説明
activate() Sheet シートをアクティブにする
appendRow(rowContents) Sheet シートの行として配列rowContentsを追加する
autoResizeColumn(col) Sheet シートの列番号colの列幅を自動で調整する
clear() Sheet シートをクリアする
clearContents() Sheet シートのコンテンツをクリアする
clearFormats() Sheet シートの書式設定をクリアする
copyTo(spreadsheet) Sheet シートをスプレッドシートspreadsheetにコピーする
deleteColimns(col[,n]) void 列番号colからn列を削除する
deleteRows(row[,n]) void 行番号rowからn行を削除する
getActiveCell() Range シートのアクティブなセルを取得する
getActiveRange() Range シートのアクティブなセル範囲を取得する
getColumnWidth(col) Integer シートのcolの列幅をピクセルで取得する
getDataRange() Range シート内のデータが存在するセル範囲を取得する
getFormUrl() String シートに関連するフォームのURLを取得する
getIndex() Integer シートのインデックスを取得する
getLastColumn() Integer シートのデータがある最終列番号を取得する
getLastRow() Integer シートのデータがある最終行番号を取得する
getName() String シート名を取得する
getParent() Spreadsheet シートが含まれているスプレッドシートを取得する
getRange(row,col[,m,n]) Range シートの行番号row、列番号col、rowからm行分、n列分のセル範囲を取得する
getRange(a1Notation) Range シートのセル範囲をA1表記または、R1C1表記で取得する
getRowHeight(row) Integer 行番号rowの行の高さをピクセルで取得する
getSheetId() Integer シートのIDを取得する
getTabColor() String シートのタブの色を取得する
hideColumns(col[,n]) void 列番号colからn列を非表示にする
hideRows(row[,n]) void 行番号rowからn行を非表示にする
hideSheet() Sheet シートを非表示にする
insertColumns(col[,n]) void 列番号colの位置にn列の空白列を挿入する
insertImage(url, col, row[,x,y]) void 列番号col、行番号rowのセルから、横xピクセル、縦yピクセル離した位置に、urlで指定した画像を挿入する
insertRows(row[,n]) void 行番号rowの位置にn行の空白行を挿入する
isSheetHidden() Boolean シートが非表示になっているかを判定する
setActiveRange(range) Range セル範囲rangeをアクティブにする
setColumnWidth(col,width) Sheet 列番号colの列幅をwidthピクセルに設定する
setName(name) Sheet シート名をnameにする
setRowHeight(row,height) Sheet 行番号rowの行の高さをheightピクセルに設定する
setTabColor(color) Sheet シートタブの色を設定する
showColumns(col[,n]) void 列番号colからn列分の非表示を解除する
showRows(row[,n]) void 行番号rowからn行分の非表示を解除する
showSheet() Sheet シートを表示する
sort(col[,ascending) Sheet 列番号colの値でシートを並べ替える()ascendingをfalseにすると降順

上記のようにSheetクラスには、セル範囲シートの操作やセルの指定をするメンバーが沢山用意されています。

セル範囲を取得する

SpreadsheetAppクラスでSpreadsheetを取得して、シートを取得しましたので、今度はセルを取得します。

セルの範囲を取得する方法はいくつかありますが、ここでは基本的なものを2つ紹介します。

サンプル

A1セルから、E3セルまでに、「あ」~「そ」までのひらがなが入力してあるシートです。

セル範囲を取得するためには、「getRange」メソッドを使います。

Sheetオブジェクト.getRange(セル範囲)

A1形式で指定する

getRangeメソッドでのセル範囲の指定は2つ方法があります。次のコードは、A1形式で指定した場合です。

range.getA1Notation()でセル範囲のアドレスをA1形式でログに出力しています。

サンプルの「い、き、し」のセル範囲「B1:B3」を取得します。

function test(){
  
  // シートを取得する
  var sheet = SpreadsheetApp.getActiveSheet()
  
  // getRangeメソッドを使ってA1形式で指定する
  var range = sheet.getRange("B1:B3")
  
  Logger.log(range.getA1Notation()) // "B1:B3"

}

行番号・列番号を指定する

次のコードは、もう一つの方法である行番号・列番号を指定して取得する方法です。

Sheetオブジェクト.getRange(行番号, 列番号 [, 行数, 列数 ])

といった具合で指定します。

同じ様に、サンプルの「い、き、し」のセル範囲「B1:B3」を取得してみます。

function test(){
  
  // シートを取得する
  var sheet = SpreadsheetApp.getActiveSheet()
  
  // getRangeメソッドを使って行番号・列番号で指定する
  var range = sheet.getRange(1, 2, 3, 1)
  
  Logger.log(range.getA1Notation()) // "B1:B3"

}

もう少し詳しく、図で説明しときます(^^)

範囲の中で一番左上にあるセルの、行番号・列番号を指定して、その後ろに、そこから何行分・何列分範囲を広げるか指定する感じです!

まとめ

Sheetクラスについて説明しました!次回以降も更に配下のクラスについて順番に説明していきます!