Google Apps Script (GAS) でセル範囲をアクティブにしたり現在のセルにする方法を説明します。
Rangeクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。
「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のRangeクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
activate() | Range | このセル範囲をアクティブにする |
activateAsCurrentCell() | Range | このセルを現在のセルにする |
このセル範囲をアクティブにする
このセル範囲をアクティブにするメソッドを説明します。
このセル範囲をアクティブにする:activate()
このセル範囲をアクティブにする方法です。
1つのセルでも複数のセルでもアクティブにできます。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("C2:E5"); testRange.activate(); } |
下記のファイルに対して実行してみます。
下記の結果になります。指定したC2:E5がアクティブになります。
このセルを現在のセルにする:activateAsCurrentCell()
このセルを現在のセルにする方法です。”アクティブ”ではなく”現在のセル”にするという動作です。
1つのセルを指定します。複数のセルを指定することはできません。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("C2"); testRange.activateAsCurrentCell(); } |
下記のファイルに対して実行してみます。
下記の結果になります。指定したC2が現在のセルになります。
上記の場合は、アクティブにもなっていますが、次に下記の例で試してみます。
B2が現在のセルで、B2:D4がアクティブのファイルです。
実行すると下記の結果になります。現在のセルはC2に変わりますが、アクティブなセル範囲は変わりません。
このように、セルを”アクティブ”にするのではなく、”現在のセル”にする動作になる、ということに注意しましょう。最初の例のように、結果としてアクティブになるケースもあります。
なお、一つのセルではなく複数セルを指定した場合は、下記のエラーになります。
1 |
Exception: Range must have a single cell. |
まとめ
Google Apps Script (GAS) でセル範囲をアクティブにしたり現在のセルにする方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。