「gas セルをアクティブにする」
「gas セルを選択する」
「google apps script セル 選択」
といった検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。
セルを選択する・アクティブにするGAS(Google Apps Script)のサンプルコードを探している方による検索でしょうか。
アクティブシート上のセルを選択するサンプル
以下のようなスクリプトで、アクティブなシートのA1セルを選択できます。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
sh.getRange("A1").activate();
SheetクラスのgetRange(a1Notation)メソッドでRangeを取得して、Rangeクラスのactivateメソッドでアクティブにしています。
アクティブでないシートのセルを選択するサンプルスクリプト
私が面白いと思ったのは、以下のスクリプトが動く点です。
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マクロを実行してみてください。
Sheets("シート1").Range("A1").Activate
End SubExcelマクロの場合、「シート1」シートがアクティブでない状態で上記のマクロを実行すると、実行時エラーが発生してしまいます。Excel VBAに慣れた方でもうっかり書いてしまうコードですが。
Excelの場合は以下のようにシートをアクティブにしておいてから、セルをアクティブにするという2段階の処理が必要です。
Sheets("シート1").Activate
Range("A1").Activate
Excel VBAは、ヒトが行う操作を自動化するというところからスタートしているのに対し、GASはまったく違う設計方針を持っていることを思い知らされる例だと感じます。
- Newer:空白の段落を標準スタイルにするWordマクロ
- Older:VBAでアクティブセルの一つ下のセルにデータを入力する
Home » Googleスプレッドシートの使い方 » セルを選択するGASスクリプト