【GAS 基礎】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クラスは色々あるので、次回以降も引き続き、他のメソッドについて紹介させて頂きます!

コメント

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