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

スポンサーリンク

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

これまで、GASでスプレッドシートを操作するための、SpreadsheetAppクラスとその配下のSpreadsheetクラスそしてSheetクラスについて紹介しました。

今回は、いよいよ最後の階層のセルや、セルの範囲を操作するRangeクラスについて紹介したいと思います!

Rangeクラス

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

Rangeクラスのメンバー

まずはRangeクラスの主なメンバーです。Sheetクラスに続いていっぱいありますよ~

説明を読んでもらうと、なんとなくイメージできるものが多いと思います。

メンバー 戻り値 説明
activate() Range セル範囲をアクティブにする
breakApart() Range セル範囲の結合を解除する
clear() Range セル範囲をクリアする
clearContent() Range セル範囲のコンテンツをクリアする
clearFormat() Range セル範囲の書式をクリアする
copyTo(range) void セル範囲を別の範囲(range)にコピーする
getA1Notation() String セル範囲のアドレスをA1形式で取得する
getBackgrounds() String[][] セル範囲の背景色を取得する
getColumn() Integer セル範囲の開始列の列番号を取得する
getFontColors() String[][] セル範囲のフォント色を取得する
getFontFamilies() String[][] セル範囲のフォントの種類を取得する
getFontLines() String[][] セル範囲のラインスタイルを取得する
getFontSizes() Integer[][] セル範囲のセルのフォントサイズを取得する
getFontStyles() String[][] セル範囲のセルのフォントのスタイル(italic or normal)を取得する
getFontWeights() String[][] セル範囲のセルのフォントのウェイト(bold or normal)を取得する
getFormula() String セルの数式をA1形式で取得する
getFormulaR1C1() String セルの数式を取得R1C1形式で取得する
getFormulas() String[][] セル範囲の数式をA1形式で取得する
getFormulasR1C1() String[][] セル範囲の数式を取得R1C1形式で取得する
getHorizontalAlignments() String[][] セル範囲の水平方向の配置を取得する
getLastColumn() Integer セル範囲の最終列番号を取得する
getLastRow() Integer セル範囲の最終行番号を取得する
getNumColumns() Integer セル範囲の列数を取得する
getNumRows() Integer セル範囲の行数を取得する
getNumberFormats() Strging[][] セル範囲の表示形式を取得する
getRow() Integer セル範囲の開始行の行番号を取得する
getSheet() Sheet セル範囲が属するシートを取得する
getValue() Object セルの値を取得する
getValues() Object[][] セル範囲の値を取得する
getVerticalAlignments() String[][] セル範囲の垂直方向の配置を取得する
getWraps() Boolean[][] セル範囲のセルの折返し設定を取得する
isBlank() Boolean セルが完全に空白かどうか判定する
moveTo(range) void セル範囲を別のセル範囲(range)に移動する
offset(row, col) Range セル範囲をrow行分、col列分移動した範囲を取得する
setBackground(color) Range セル範囲のセルの背景色をcolorに設定する
setBackgrounds(array) Range セル範囲のセルの背景色を配列arrayに設定する
setBorder(top, left, bottom, right, vertical, horizontal) Range セル範囲の罫線を設定する
setFontColor(color) Range セル範囲のフォントの色をcolorに設定する
setFontColors(array) Range セル範囲のフォントの色を配列arrayに設定する
setFontFamilies(array) Range セル範囲のフォントの種類を配列arrayに設定する
setFontFamily(fontFamily) Range セル範囲のフォントの種類をfontFamilyに設定する
setFontLine(fontLine) Range セル範囲のラインスタイルをfontLineに設定する
setFontLines(array) Range セル範囲のラインスタイルを配列arrayに設定する
setFontSize(size) Range セル範囲のフォントサイズをsizeに設定する
setFontSizes(array) Range セル範囲のフォントサイズを配列arrayに設定する
setFontStyle(fontStyle) Range

セル範囲のフォントのスタイルをfontStyleに設定する(italic or normal)

setFontStyles(array) Range セル範囲のフォントのスタイルを配列arrayに設定する(italic or normal)
setFontWeight(fontWeight) Range セル範囲のセルのフォントウェイトをfontWeightに設定する(bold or normal)
setFontWeights(array) Range セル範囲のセルのフォントウェイトを配列arrayに設定する(bold or normal)
setFormula(formula) Range セルにformulaをA1形式で設定する
setFormulaR1C1(formula) Range セルにformulaをR1C1形式で設定する
setFormulas(formulas) Range セル範囲にformulasをA1形式で設定する
setFormulasR1C1(formulas) Range セル範囲にformulasをR1C1形式で設定する
setHorizontalAlignment(alignment) Range セル範囲の水平方向の配置をalignmentに設定する(left/center/right)
setHorizontalAlignments(array) Range セル範囲の水平方向の配置を配列arrayに設定する(left/center/right)
setNumberFormat(numberFormat) Range セル範囲の表示形式をnumberFormatに設定する
setNumberFormats(array) Range セル範囲の表示形式を配列arrayに設定する
setValue(value) Range セル範囲に値valueを設定する
setValues(values) Range セル範囲に値valuesを設定する
setVerticalAlignment(alignment) Range セル範囲の垂直方向の配置をalignmentに設定する(top/middle/bottom)
setVerticalAlignments(array) Range セル範囲の垂直方向の配置配列arrayに設定する(top/middle/bottom)
setWrap(isWrapEnabled) Range セル範囲のセルの折返し設定をisWrapEnabledに設定する
setWraps(isWrapEnabled) Range セル範囲のセルの折返し設定を配列arrayに設定する
sort(sortSpecObj) Range セル範囲内をソートする

上記のようにRangeクラスには、セル範囲を操作メンバーが沢山用意されています。シート状でお馴染みの動きの命令なので覚えやすいと思います!

セル範囲の情報を取得する

それでは早速、次のサンプルを使って、セルの範囲の情報を取得してみましょう!

サンプル

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

セル範囲を取得するためには、Sheetオブジェクトの「getRange」メソッドを使うんでしたね。

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

B2セルからF4セルを取得して、Rangeクラスのメンバーで色々な情報を取得してみましょう。

function test(){
  
  // セル範囲を取得する(B2:F4)
  var range = SpreadsheetApp.getActiveSheet().getRange("B2:F4")
  
  // セル範囲のアドレスをA1形式で取得
  Logger.log(range.getA1Notation())     // "B2:F4"
  
  // セル範囲の開始行番号
  Logger.log(range.getRow())            // 2
  
  // セル範囲の開始列番号
  Logger.log(range.getColumn())         // 2
  
  // セル範囲の行数
  Logger.log(range.getNumRows())        // 3
  
  // セル範囲の列数
  Logger.log(range.getNumColumns())     // 5
  
  // セル範囲の最終行番号
  Logger.log(range.getLastRow())        // 4
  
  // セル範囲の最終列番号
  Logger.log(range.getLastColumn())     // 6

}

セルの値の取得・入力

次のセルの値の取得と入力のサンプルです。

セルの値の取得は「getValue」メソッド、セルの値の入力は「setValue」メソッドを使います。get(ゲット)とset(セット)なんで分かりますね(^^)

Rangeオブジェクト.getValue()

Rangeオブジェクト.setValue(値)

取得のときは、getValue()と「()」だけですが、入力するsetValue(値)のときは、「(値)」のように、()の中に入力したい値をいれます。

では、先程のサンプルでB2セルの値を取得して、B2セルに別の値を入力してみましょう!

function test(){
  
  // セルを取得する(B2)
  var range = SpreadsheetApp.getActiveSheet().getRange("B2")
  
  // セルの値を取得する
  var val = range.getValue()
  Logger.log(val)   // あ
 
 // セルに値を入力する
 range.setValue("ひらちん")

}

それでは、セルの値がちゃんと変わるか動画で確認してみましょう!

B2セルが「ひらちん」に変わりました!ログには「あ」が出力されていましたね(^^)

まとめ

Rangeクラスについて説明しました!Rangeクラスは色々あるので、次回以降も引き続き、他のメソッドについて紹介させて頂きます!