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