Home » Googleスプレッドシートの使い方 » Google Apps Scriptで隣のセルを取得、選択、アクティブセルを隣に移動する

Google Apps Scriptで隣のセルを取得、選択、アクティブセルを隣に移動する

対象:Googleスプレッドシート&Google Apps Script

「gas 隣のセル」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

GAS(Google Apps Script)で、Googleスプレッドシートの隣のセルに何かするにはどのようなコードを書けばいいのかを探している方による検索です。

「gas 隣のセル」
という検索キーワードだけでは、具体的に何がしたかったのかわかりませんので、参考になりそうなスクリプトをいくつかご紹介しておきます。

[スポンサードリンク]

Range.offsetメソッドで隣接するセルを取得してデータを入力するサンプルスクリプト

隣のセルを取得するのに便利なのは、Rangeクラスのoffsetメソッドです。

まずは、Range.offsetメソッドの動きを確認しましょう。

function sample_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メソッドを使って隣のセルを選択する・アクティブセルを隣のセルに移動したいという場合、以下のサンプルスクリプトが参考になるでしょう。

function sample_activate_right_cell(){

 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());

// activate the right cell
 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メソッドで選択しています。

隣のセルの値を取得する

隣のセルの値を取得したいのなら、以下のサンプルスクリプトが参考になるでしょう。

function sample_get_right_cell_value(){

 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で隣のセルを取得、選択、アクティブセルを隣に移動する

「Googleスプレッドシートの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.