【GAS】スプレッドシートのシート挿入・複製・移動・削除機能まとめ【サンプルソース付】

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

GAS開発者向けにスプレッドシートのシート挿入・複製・移動・削除機能をすべてまとめました。

頻繁にシート作成、似たようなシートをコピー、たくさん作ったシートを整理するために移動や削除、など、GASを使ってシート全般の操作を簡単にしましょう。

特に挿入はいろいろやり方があるので、やりやすいやり方を見つけてみてください。

シート挿入・複製・移動・削除に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


スポンサーリンク

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

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

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

 

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

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

 

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

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

 

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

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

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


スプレッドシートクラス[Spreadsheet]のシート挿入

スプレッドシート全体の新規シート挿入メソッドです。

シート挿入1[insertSheet()]

insertSheet()
デフォルトのシート名を使用して、スプレッドシートに新しいシートを挿入します。新しいシートがアクティブシートになります。

function insertSheet1Sample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.insertSheet();
}

Return
Sheet - 新しいシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | insertSheet()

シート挿入2[insertSheet(シート名)]

insertSheet(sheetName)
指定された名前で新しいシートをスプレッドシートに挿入します。新しいシートがアクティブシートになります。

function insertSheet2Sample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.insertSheet('My New Sheet');
}
Parameters
名前タイプ説明
sheetNameString新しいシートの名前。

Return
Sheet - 新しいシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | insertSheet(sheetName)

シート挿入3[insertSheet(シートインデックス)]

insertSheet(sheetIndex)
指定されたインデックスの新しいシートをスプレッドシートに挿入します。新しいシートがアクティブシートになります。

function insertSheet3Sample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.insertSheet(1);
}
Parameters
名前タイプ説明
sheetIndexInteger新しく作成されたシートのインデックス。スプレッドシートの最初のシートとしてシートを挿入するには、0に設定します。

Return
Sheet - 新しいシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | insertSheet(sheetIndex)

シート挿入4[insertSheet(オプション)]

insertSheet(options)
デフォルトのシート名とオプションの詳細引数を使用して、新しいシートをスプレッドシートに挿入します。新しいシートがアクティブシートになります。

function insertSheet4Sample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var templateSheet = ss.getSheetByName('Sales');
  ss.insertSheet({template: templateSheet});
}
Parameters
名前タイプ説明
optionsObject下記にリストされているオプションのJavaScriptの高度な引数。
Advanced parameters
名前タイプ説明
templateSheetテンプレートシートオブジェクトのすべてのデータが新しいシートにコピーされます。シートテンプレートは、このSpreadsheetオブジェクトのいずれかのシートである必要があります。

Return
Sheet - 新しいシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | insertSheet(options)

シート挿入5[insertSheet(シート名, シートインデックス)]

insertSheet(sheetName, sheetIndex)
指定されたインデックスの指定された名前で新しいシートをスプレッドシートに挿入します。新しいシートがアクティブシートになります。

function insertSheet5Sample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.insertSheet('My New Sheet', 1);
}
Parameters
名前タイプ説明
sheetNameString新しいシートの名前。
sheetIndexInteger新しく作成されたシートのインデックス。スプレッドシートの最初のシートとしてシートを挿入するには、0に設定します。

Return
Sheet - 新しいシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | insertSheet(sheetName, sheetIndex)

シート挿入6[insertSheet(シート名, オプション)]

insertSheet(sheetName, options)
指定された名前でスプレッドシートに新しいシートを挿入し、オプションの詳細引数を使用します。新しいシートがアクティブシートになります。

function insertSheet6Sample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var templateSheet = ss.getSheetByName('Sales');
  ss.insertSheet('My New Sheet', {template: templateSheet});
}
Parameters
名前タイプ説明
sheetNameString新しいシートの名前。
optionsObjectオプションのJavaScriptの高度な引数。
Advanced parameters
名前タイプ説明
templateSheetテンプレートシートオブジェクトのすべてのデータが新しいシートにコピーされます。シートテンプレートは、スプレッドシートオブジェクトのいずれかのシートである必要があります。

Return
Sheet - 新しいシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | insertSheet(sheetName, options)

シート挿入7[insertSheet(シートインデックス, オプション)]

insertSheet(sheetIndex, options)
指定されたインデックスでスプレッドシートの新しいシートを挿入し、オプションの詳細引数を使用します。新しいシートがアクティブシートになります。

function insertSheet7Sample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var templateSheet = ss.getSheetByName('Sales');
  ss.insertSheet(1, {template: templateSheet});
}
Parameters
名前タイプ説明
sheetIndexInteger新しく作成されたシートのインデックス。スプレッドシートの最初のシートとしてシートを挿入するには、0に設定します。
optionsObjectオプションのJavaScriptの高度な引数。
Advanced parameters
名前タイプ説明
templateSheetテンプレートシートオブジェクトのすべてのデータが新しいシートにコピーされます。シートテンプレートは、スプレッドシートオブジェクトのいずれかのシートである必要があります。

Return
Sheet - 新しいシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | insertSheet(sheetIndex, options)

シート挿入8[insertSheet(シート名, シートインデックス, オプション)]

insertSheet(sheetName, sheetIndex, options)
指定されたインデックスの指定された名前で新しいシートをスプレッドシートに挿入し、オプションの詳細引数を使用します。新しいシートがアクティブシートになります。

function insertSheet8Sample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var templateSheet = ss.getSheetByName('Sales');
  ss.insertSheet('My New Sheet', 1, {template: templateSheet});
}
Parameters
名前タイプ説明
sheetNameString新しいシートの名前。
sheetIndexInteger新しく挿入されたシートのインデックス。スプレッドシートの最初のシートとしてシートを挿入するには、0に設定します。
optionsObjectオプションのJavaScriptの高度な引数。
Advanced parameters
名前タイプ説明
templateSheetテンプレートシートオブジェクトのすべてのデータが新しいシートにコピーされます。シートテンプレートは、スプレッドシートオブジェクトのいずれかのシートである必要があります。

Return
Sheet - 新しいシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | insertSheet(sheetName, sheetIndex, options)

シート挿入9(データソーステーブル)[insertSheetWithDataSourceTable(スペック)]

insertSheetWithDataSourceTable(spec)
スプレッドシートに新しいシートを挿入し、指定されたデータソース仕様でシート全体にまたがるDataSourceTableを作成して、データの実行を開始します。副作用として、新しいシートをアクティブシートにします。

データソースの種類が有効になっていない場合は、例外をスローします。 SpreadsheetApp#enable ... Execution()メソッドを使用して、特定のデータソースタイプに対するデータ実行を有効にします。

Parameters
名前タイプ説明
specDataSourceSpec挿入するデータソースの指定。

Return
Sheet - 新しいシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | insertSheetWithDataSourceTable(spec)




スプレッドシートクラス[Spreadsheet]のシート複製

スプレッドシート全体の既存アクティブシート複製メソッドです。

アクティブシート複製[duplicateActiveSheet()]

duplicateActiveSheet()
アクティブシートを複製してアクティブシートにします。

function insertSheetWithDataSourceTableSample() {
  // 以下のコードはアクティブシートを複製します。
  SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
}

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | duplicateActiveSheet()


スプレッドシートクラス[Spreadsheet]のシート移動

スプレッドシート全体の既存シート移動メソッドです。

アクティブシート移動[moveActiveSheet(シート位置)]

moveActiveSheet(pos)
アクティブシートをシートリスト内の指定された位置に移動します。位置が負数またはシート数より大きい場合は、例外をスローします。

function moveActiveSheetSample() {
  // この例では、現在アクティブなスプレッドシートに
  // 2つのシートがあると仮定しています。
  // 1つは "first"という名前のもので、もう1つは "second"という名前です。
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheetByName("first");

  // これは 'Current index of sheet:1'を出力します
  Logger.log("Current index of sheet: %s", sheet.getIndex());

  spreadsheet.moveActiveSheet(2);

  // これは 'New index of sheet:2'を出力します。
  Logger.log("New index of sheet: %s", sheet.getIndex());
}
Parameters
名前タイプ説明
posIntegerシートのリスト内でアクティブなシートを移動する位置。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | moveActiveSheet(pos)

オブジェクトシートチャート移動[moveChartToObjectSheet(chart)]

moveChartToObjectSheet(chart)
新しいSheetType.OBJECTシートを作成し、提供されたチャートをそのシートに移動します。チャートがすでに独自のシートにある場合は、新しいシートを作成せずにそのシートが返されます。

function moveChartToObjectSheetSample() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var chart = sheet.newChart().setPosition(1, 1, 0, 0).build();
  sheet.insertChart(chart);
  var objectSheet = SpreadsheetApp.getActive().moveChartToObjectSheet(chart);
}
Parameters
名前タイプ説明
chartEmbeddedChart移動するチャート。

Return
Sheet - チャートがあるシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | moveChartToObjectSheet(chart)


スプレッドシートクラス[Spreadsheet]のシート削除

スプレッドシート全体の既存シート削除メソッドです。

シート削除[deleteSheet(シート名)]

deleteSheet(sheet)
指定したシートを削除します。

function deleteSheetSample() {
  // 以下のコードは指定されたシートを削除します。
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('My Sheet');
  ss.deleteSheet(sheet);
}
Parameters
名前タイプ説明
sheetSheet削除するシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | deleteSheet(sheet)

アクティブシート削除[deleteActiveSheet()]

deleteActiveSheet()
現在アクティブなシートを削除します。

function deleteActiveSheetSample() {
  // 以下のコードは現在アクティブなシートを削除し、
  // 新しいアクティブシートを変数に格納します
  var newSheet = SpreadsheetApp.getActiveSpreadsheet().deleteActiveSheet();
}

Return
Sheet - 新しいアクティブシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | deleteActiveSheet()


最後に

GASシート挿入・複製・移動・削除機能のまとめをご紹介させていただきました。

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

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

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

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

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

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

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

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

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




コメント

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