【GAS】スプレッドシートの行列セル挿入削除機能まとめ【サンプルソース付】

快速ワーク
スポンサーリンク

GAS開発者向けにスプレッドシートの行列セル挿入削除機能をすべてまとめました。

簡単に手っ取り早く、行、列、セルに挿入したり、削除したりできるといろいろ融通が利きます。

複数行をまとめて別の列にコピー、そんな操作は日常茶飯事ですね。GASの挿入機能がきっと役立ちます。

特にGoogleスプレッドシートはExcelみたいな行コピー機能がまだないので(2019年7月現在)、GASで使いこなせると便利です。

行列セル挿入削除に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


スポンサーリンク

Google Apps Script スプレッドシート 基礎 リファレンス

当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。

若干、文言がおかしい可能性がありますが、あらかじめご了承ください。

 

GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。

【GAS】スプレッドシート基本メソッドまとめ一覧【初心者入門】
GAS開発者向けにスプレッドシートの基本的なメソッドを一覧にまとめました。各機能ごとのクラス、メソッドごとのサンプルソース付ページへリンクする一覧です。初心者にとって、スプレッドシートの基本的な操作・機能単位のメソッドを知...

 

まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。

【GAS】Googleスプレッドシートでマクロの使い方入門【動画付】
Googleの「Google Apps Script」通称GAS。GoogleマップやGメールなど、いろんなGoogle関連のサービスと自由に連携できたり、独自のWebアプリを開発することもできる、いろんな可能性を秘めたワクワクの...

 

GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。

基本的な仕様やよく使われる機能の設定方法がまとまっています。

※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。


シートクラス[Sheet]の行挿入・削除

シートの行挿入と行削除メソッドです。単一行処理と複数行処理など、いろいろな方法があります。

行挿入(前)[insertRowBefore(前の位置)]

insertRowBefore(beforePosition)
指定された行位置の前に行を挿入します。

function insertRowBeforeSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // これは最初の行位置の前に行を挿入します
  sheet.insertRowBefore(1);
}
Parameters
名前タイプ説明
beforePositionInteger新しい行を追加する前の行。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertRowBefore(beforePosition)

行挿入(後)[insertRowAfter(後の位置)]

insertRowAfter(afterPosition)
指定された行位置の後に行を挿入します。

function insertRowAfterSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // これは最初の行位置の後に行を挿入します
  sheet.insertRowAfter(1);
}
Parameters
名前タイプ説明
afterPositionInteger新しい行を追加する行。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertRowAfter(afterPosition)

行挿入(行指定)[insertRows(行インデックス)]

insertRows(rowIndex)
指定された場所にシートの空白行を挿入します。

function insertRowsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // すべての行を1つ下にシフトします
  sheet.insertRows(1);
}
Parameters
名前タイプ説明
rowIndexInteger行を挿入する場所を示すインデックス。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertRows(rowIndex)

複数行挿入(前)[insertRowsBefore(前の位置, 行数)]

insertRowsBefore(beforePosition, howMany)
指定された行位置の前にいくつかの行を挿入します。

function insertRowsBeforeSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // これは最初の行の前に5行挿入します
  sheet.insertRowsBefore(1, 5);
}
Parameters
名前タイプ説明
beforePositionInteger新しい行を追加する前の行。
howManyInteger挿入する行数。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertRowsBefore(beforePosition, howMany)

複数行挿入(後)[insertRowsAfter(後の位置, 行数)]

insertRowsAfter(afterPosition, howMany)
指定された行位置の後にいくつかの行を挿入します。

function insertRowsAfterSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // これは最初の行の後に5行挿入します
  sheet.insertRowsAfter(1, 5);
}
Parameters
名前タイプ説明
afterPositionInteger新しい行を追加する必要がある行。
howManyInteger挿入する行数。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertRowsAfter(afterPosition, howMany)

複数行挿入(行指定)[insertRows(行インデックス, 行数)]

insertRows(rowIndex, numRows)
指定された位置から1つ以上の連続した空白行をシートに挿入します。

function insertRowsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // すべての行を3つ下にシフトします
  sheet.insertRows(1, 3);
}
Parameters
名前タイプ説明
rowIndexInteger行を挿入する場所を示すインデックス。
numRowsInteger挿入する行数。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertRows(rowIndex, numRows)

行削除[deleteRow(行の位置)]

deleteRow(rowPosition)
指定された行位置にある行を削除します。

function deleteRowSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // 行は "1"から始まります - これは最初の行を削除します
  sheet.deleteRow(1);
}
Parameters
名前タイプ説明
rowPositionInteger行の位置。最初の行の1から始まります。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | deleteRow(rowPosition)

複数行削除[deleteRows(行の位置, 行数)]

deleteRows(rowPosition, howMany)
指定された行位置から始まるいくつかの行を削除します。

function deleteRowsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // 行は "1"から始まります - これは最初の2行を削除します
  sheet.deleteRows(1, 2);
}
Parameters
名前タイプ説明
rowPositionInteger削除する最初の行の位置。
howManyInteger削除する行数。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | deleteRows(rowPosition, howMany)




シートクラス[Sheet]の列挿入・削除

シートの列挿入と列削除メソッドです。単一列処理と複数列処理など、いろいろな方法があります。

列挿入(前)[insertColumnBefore(前の位置)]

insertColumnBefore(beforePosition)
指定された列位置の前に列を挿入します。

function insertColumnBeforeSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // これは最初の列位置に列を挿入します
  sheet.insertColumnBefore(1);
}
Parameters
名前タイプ説明
beforePositionInteger新しい列を追加する前の列。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertColumnBefore(beforePosition)

列挿入(後)[insertColumnAfter(後の位置)]

insertColumnAfter(afterPosition)
指定された列位置の後に列を挿入します。

function insertColumnAfterSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // これは最初の列位置の後に列を挿入します
  sheet.insertColumnAfter(1);
}
Parameters
名前タイプ説明
afterPositionInteger新しい列を追加する必要がある列。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertColumnAfter(afterPosition)

列挿入(列指定)[insertColumns(列インデックス)]

insertColumns(columnIndex)
指定された位置にシートの空白の列を挿入します。

function insertColumnsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // すべての列を1つずらす
  sheet.insertColumns(1);
}
Parameters
名前タイプ説明
columnIndexInteger列を挿入する場所を示すインデックス。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertColumns(columnIndex)

複数列挿入(前)[insertColumnsBefore(前の位置, 列数)]

insertColumnsBefore(beforePosition, howMany)
指定された列位置の前にいくつかの列を挿入します。

function insertColumnsBeforeSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // これは最初の列の前に5つの列を挿入します
  sheet.insertColumnsBefore(1, 5);
}
Parameters
名前タイプ説明
beforePositionInteger新しい列を追加する前の列。
howManyInteger挿入する列数。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertColumnsBefore(beforePosition, howMany)

複数列挿入(後)[insertColumnsAfter(後の位置, 列数)]

insertColumnsAfter(afterPosition, howMany)
指定された列位置の後にいくつかの列を挿入します。

function insertColumnsAfterSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // これは2列目の位置に列を挿入します
  sheet.insertColumnsAfter(1);
}
Parameters
名前タイプ説明
afterPositionInteger新しい列を追加する必要がある列。
howManyInteger挿入する列数。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertColumnsAfter(afterPosition, howMany)

複数列挿入(列指定)[insertColumns(列インデックス, 列数)]

insertColumns(columnIndex, numColumns)
指定した位置から1つ以上の連続した空白列をシートに挿入します。

function insertColumnsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // すべての列を3つシフトする
  sheet.insertColumns(1, 3);
}
Parameters
名前タイプ説明
columnIndexInteger列を挿入する場所を示すインデックス。
numColumnsInteger挿入する列数。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | insertColumns(columnIndex, numColumns)

列削除[deleteColumn(列の位置)]

deleteColumn(columnPosition)
指定された列位置にある列を削除します。

function deleteColumnSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // 列は "1"から始まります - これは最初の列を削除します
  sheet.deleteColumn(1);
}
Parameters
名前タイプ説明
columnPositionInteger最初の列の1から始まる列の位置。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | deleteColumn(columnPosition)

複数列削除[deleteColumns(列の位置, 列数)]

deleteColumns(columnPosition, howMany)
指定された列位置から始まるいくつかの列を削除します。

function deleteColumnsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // 列は "1"から始まります - これは最初の2列を削除します
  sheet.deleteColumns(1, 2);
}
Parameters
名前タイプ説明
columnPositionInteger削除する最初の列の位置。
howManyInteger削除する列数。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | deleteColumns(columnPosition, howMany)


セル範囲クラス[Range]のセル挿入・削除

セル範囲のセル挿入とセル削除メソッドです。

Enum Dimension
スプレッドシートにデータを保存することができる可能性のある方向の列挙。

Properties
プロパティタイプ説明
COLUMNSEnum列(垂直)サイズです。
ROWSEnum行(水平)サイズです。

参照:Google Apps Script | REFERENCE | SpreadSheet | Enum Dimension

セル挿入[insertCells(シフトディメンジョン)]

insertCells(shiftDimension)
この範囲に空のセルを挿入します。新しいセルは、以前にこの範囲を占めていたセルに存在する書式設定を保持します。指定されたサイズに沿ってシート内の既存のデータが挿入範囲から移動します。

function insertCellsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var range = sheet.getRange("A1:D10");
  range.insertCells(SpreadsheetApp.Dimension.COLUMNS);
}
Parameters
名前タイプ説明
shiftDimensionDimension既存のデータをシフトするサイズ。

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | insertCells(shiftDimension)

セル削除[deleteCells(シフトディメンジョン)]

deleteCells(shiftDimension)
この範囲のセルを削除します。指定されたディメンションに沿ったシート内の既存のデータは、削除された範囲に向かってシフトされます。

function deleteCellsSample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var range = sheet.getRange("A1:D10");
  range.deleteCells(SpreadsheetApp.Dimension.COLUMNS);
}
Parameters
名前タイプ説明
shiftDimensionDimension既存のデータをシフトするサイズ。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | deleteCells(shiftDimension)


最後に

GAS行列セル挿入削除機能のまとめをご紹介させていただきました。

必要に応じて、有益な情報でさらに更新していきたいと思います。

プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。

実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。

実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。

自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。

GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。

Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

Googleスプレッドシートの使い方や機能がわかるショートカットキー全まとめ一覧【初心者こそ必見】
表計算ソフトとして、まだまだExcelのシェア率は高いですが、GoogleスプレッドシートにはExcelにはない超強力な関数があったり、Excelとは違って常に最新版を無料で使用できます。なにより、インターネットを使ったオンライン...

ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。




コメント

//▼2023/04/08追加 //https://lovagelab.com/posts/3406/ //▲2023/04/08追加