Home » Googleスプレッドシートの使い方 » セルを選択するGASスクリプト

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

「gas セルをアクティブにする」
「gas セルを選択する」
「google apps script セル 選択」
といった検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。

セルを選択する・アクティブにするGAS(Google Apps Script)のサンプルコードを探している方による検索でしょうか。

[スポンサードリンク]

アクティブシート上のセルを選択するサンプル

以下のようなスクリプトで、アクティブなシートのA1セルを選択できます。

function sample_activate_cell_activesheet(){

 var bk = SpreadsheetApp.getActiveSpreadsheet();
 var sh = bk.getActiveSheet();
 sh.getRange("A1").activate();

}

SheetクラスのgetRange(a1Notation)メソッドでRangeを取得して、Rangeクラスのactivateメソッドでアクティブにしています。

アクティブでないシートのセルを選択するサンプルスクリプト

私が面白いと思ったのは、以下のスクリプトが動く点です。

function sample_activate_cell_othersheet(){

 var bk = SpreadsheetApp.getActiveSpreadsheet();
 bk.getSheetByName("シート1").getRange("A1").activate();

}

「シート1」シートがアクティブでない状態で、上記のスクリプトを実行した場合にも、「シート1」シートのA1セルが選択できます。

Excelマクロに慣れている私には、
  bk.getSheetByName("シート1").getRange("A1").activate();
という1行のコードで、アクティブでない別シートのセルが選択できる点がとても面白く感じます。

Excelマクロとの比較

何が面白いと感じたかわからないという方は、「シート1」シートが存在するけれど「シート1」がアクティブになっていない状態で、以下のExcelマクロを実行してみてください。

Sub セル選択_エラーになる場合あり()

 Sheets("シート1").Range("A1").Activate

End Sub

Excelマクロの場合、「シート1」シートがアクティブでない状態で上記のマクロを実行すると、実行時エラーが発生してしまいます。Excel VBAに慣れた方でもうっかり書いてしまうコードですが。

Excelの場合は以下のようにシートをアクティブにしておいてから、セルをアクティブにするという2段階の処理が必要です。

Sub セル選択()

 Sheets("シート1").Activate
 Range("A1").Activate

End Sub

Excel VBAは、ヒトが行う操作を自動化するというところからスタートしているのに対し、GASはまったく違う設計方針を持っていることを思い知らされる例だと感じます。

[スポンサードリンク]

Home » Googleスプレッドシートの使い方 » セルを選択するGASスクリプト

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

検索


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

.