「gas 隣のセル」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
GAS(Google Apps Script)で、Googleスプレッドシートの隣のセルに何かするにはどのようなコードを書けばいいのかを探している方による検索です。
「gas 隣のセル」
という検索キーワードだけでは、具体的に何がしたかったのかわかりませんので、参考になりそうなスクリプトをいくつかご紹介しておきます。
Range.offsetメソッドで隣接するセルを取得してデータを入力するサンプルスクリプト
隣のセルを取得するのに便利なのは、Rangeクラスのoffsetメソッドです。
まずは、Range.offsetメソッドの動きを確認しましょう。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
// activate the E3
var rng = sh.getRange(3, 5);
rng.activate();
// set values
rng.offset(0, 1).setValue("右隣");
rng.offset(0, -1).setValue("左隣");
rng.offset(1, 0).setValue("下");
rng.offset(-1, 0).setValue("上");
上記のスクリプトを実行すると、E3セルが選択され、
var rng = sh.getRange(3, 5);
rng.activate();
E3セルに隣接するセルに「右隣」「左隣」「下」「上」という文字列が入力されます。
rng.offset(0, 1).setValue("右隣");
rng.offset(0, -1).setValue("左隣");
rng.offset(1, 0).setValue("下");
rng.offset(-1, 0).setValue("上");
この例をご覧いただければ、offsetメソッドの第1引数に行の相対的な位置、第2引数に列の相対的な位置を指定するということが理解できるでしょう。
隣のセルを選択する・アクティブセルを隣のセルに移動するサンプルスクリプト
Range.offsetメソッドを使って隣のセルを選択する・アクティブセルを隣のセルに移動したいという場合、以下のサンプルスクリプトが参考になるでしょう。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var rng = sh.getActiveCell();
// show the row & column number of the active cell
Browser.msgBox(rng.getRow());
Browser.msgBox(rng.getColumn());
rng.offset(0, 1).activate();
}
このスクリプトを実行すると、アクティブなセルの行番号と列番号がメッセージボックスに表示されたあと、
var rng = sh.getActiveCell();
Browser.msgBox(rng.getRow());
Browser.msgBox(rng.getColumn());
アクティブセルの右隣のセルが選択されます。
rng.offset(0, 1).activate();
Range.offsetメソッドで取得したセルをRange.activateメソッドで選択しています。
隣のセルの値を取得する
隣のセルの値を取得したいのなら、以下のサンプルスクリプトが参考になるでしょう。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var rng = sh.getActiveCell();
// get the right cell value
var val = rng.offset(0, 1).getValue();
Browser.msgBox(val);
}Range.offsetメソッドで取得した隣のセルの値を、Range.getValueメソッドで取得して、
var rng = sh.getActiveCell();
var val = rng.offset(0, 1).getValue();
その値をメッセージボックスに表示しています。
Browser.msgBox(val);
Home » Googleスプレッドシートの使い方 » Google Apps Scriptで隣のセルを取得、選択、アクティブセルを隣に移動する