Google Apps Script (GAS) でこのセル範囲のセルの入力値に基づいて増分やコピーでオートフィルする方法を説明します。
Rangeクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。
「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のRangeクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
autoFill(destination, series) | void | 指定したセル範囲にオートフィルする |
autoFillToNeighbor(series) | void | 隣接したセルに合わせてオートフィルする |
セルを増分やコピーでオートフィルする
このセル範囲のセルの入力値に基づいて増分やコピーでオートフィルするメソッドを説明します。
指定したセル範囲にオートフィルする:autoFill(destination, series)
このセル範囲のセルの入力値に基づいて、指定したセル範囲にオートフィルする方法です。
引数destinationには、元のセル範囲を含めて、オートフィルしたいセル範囲を指定します。縦方向か横方向のどちらか一方のセル範囲を指定します。
引数seriesは下記のいずれかを指定します。
スタイル | 説明 |
---|---|
SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES | 拡張範囲の空のセルに既存の値の増分が入力されます |
SpreadsheetApp.AutoFillSeries.ALTERNATE_SERIES | 拡張範囲の空のセルに既存の値のコピーが入力されます |
下記のように実行します。B2:B4のセル範囲をもとにB2:B13のセル範囲に縦方向にオートフィルする例です。
1 2 3 4 5 6 7 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:B4"); const testAutoFill = testSheet.getRange("B2:B13"); testRange.autoFill(testAutoFill, SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES); } |
下記のファイルで実行してみます。
下記のような実行結果になります。
なお、SpreadsheetApp.AutoFillSeries.ALTERNATE_SERIESを指定した場合は、下記のようにコピーが入力されます。
隣接したセルに合わせてオートフィルする:autoFillToNeighbor(series)
このセル範囲のセルの入力値に基づいて、隣接したセルに合わせたセル範囲にオートフィルする方法です。
引数seriesは下記のいずれかを指定します。
スタイル | 説明 |
---|---|
SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES | 拡張範囲の空のセルに既存の値の増分が入力されます |
SpreadsheetApp.AutoFillSeries.ALTERNATE_SERIES | 拡張範囲の空のセルに既存の値のコピーが入力されます |
下記のように実行します。C2:C3のセル範囲を隣接するセルに合わせてオートフィルします。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("C2:C3"); testRange.autoFillToNeighbor(SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES); } |
下記のファイルで実行してみます。
下記のような実行結果になります。左側のB列の入力済みセルと同じ行まで入力されます。
まとめ
Google Apps Script (GAS) でこのセル範囲のセルの入力値に基づいて増分やコピーでオートフィルする方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。