【insertSheet】スプレッドシートに新規シートを挿入する

GoogleAppsScript

【insertSheet】メソッドは

スプレッドシートファイル内に指定した条件で新規シートを挿入するメソッド

です。

 

公式リファレンスの該当ページはこちら

 

クラス

【Spreadsheetクラス】

 

記述方法

上記のように、Spreadsheetクラスのオブジェクトから実行するかたちでinsertSheetメソッドを記述します。

メソッドを実行すると白紙の新規シートが作成されます。作成されたシートの名前は「シート●」という表記になります。(●は連番)

 

また、insertSheetメソッドでは

  • 作成するシートの名前…sheetName
  • シートを挿入する場所…sheetIndex
  • 挿入するシートのテンプレート…options

を引数で設定することが可能です。

ですので、insertSheetメソッドの記述パターンは

  • insertSheet()
  • insertSheet(sheetName)
  • insertSheet(sheetIndex)
  • insertSheet(options)
  • insertSheet(sheetName, sheetIndex)
  • insertSheet(sheetName, options)
  • insertSheet(sheetIndex, options)
  • insertSheet(sheetName, sheetIndex, options)

の全8パターンです。

引数の記述優先順はsheetName > sheetIndex > optionsの順となり、この順番を間違えると正しく機能しません。

 

それでは、各引数の詳細についてご紹介します。

 

sheetName

 

新しく挿入するシートの名前を設定するの引数です。

 

指定するシート名は文字列で記入する必要があり、数字だけのシート名にしたい場合にも”123″という感じでクォーテーションで囲んで文字列にします。

 

sheetNameを数値で指定してしまうと新規挿入シートの場所を指定するsheetIndex引数と認識されてしまい正しく動作しません。

 

sheetIndex

 

新しく挿入するシートの挿入場所…インデックス値を指定する引数です。

 

指定する数値は配列のインデックス値と考え方は同じです。

新規シートをシートタブの一番左側に挿入したい場合はインデックス値に「0」を指定します。

 

また、左から3番目に挿入したい場合は「2」を指定します。

 

ちなみに、現在存在するシート数よりも多い数のインデックス値を指定した場合は一番右側のシートタブに挿入されます。

挿入前のシート数が5 、指定したインデックス値が100だとしてもエラーにはならず一番右側にシートを挿入してくれます。

 

options

 

新しく挿入するシートのテンプレートを指定する引数です。

引数名はoptionsとなっていますが、テンプレート以外の設定項目はありません。(少なくともGASのドキュメントにはそのような記載がありません)

 

テンプレートの指定は上記のとおりです。すでにスプレッドシート上に存在するシートをSheetオブジェクトとして取得したものをテンプレートとして活用します。

 

keyをtemplate、valueをテンプレにしたいSheetオブジェクトを記述した連想配列を引数optionsとして設定します。

(前述のようにoptionsではtemplate以外を指定できないので、ここで連想配列を使う意味があまりないと思うのですが…ルールなので…)

上記の例であれば、シート名testのシートを新規シートとして挿入することができます。

 

また、引数でシート名を指定していない場合、作成されるシートの**シート名はテンプレートとしたシートのシート名が引き継がれます。

**同じ名前のシートは2枚以上作成することができないため、タブメニューからシートを複製する時と同じように「(シート名)のコピー」という名前で新規シートが挿入されます。

例えば、「test」というシートをテンプレートに設定した場合は「testのコピー」という名前の新規シートが挿入されます。

 

注意点ですが、指定するテンプレートはスクリプトを実行するスプレッドシート上に存在するシートに限定されます。

 

上記のスクリプトは実行すると指定したシートはスプレッドシートの一部である必要があります。という表示が出てエラーになります。

外部のシートも活用できると非常に便利だと思うのですが、現状のinsertSheetメソッドの仕様では外部シートのテンプレート利用はできません。ご注意ください。

 

引数を組み合わせる

前述したように、insertSheetメソッドの3つの引数は組み合わせて利用することができます。下記に利用例をご紹介します。

 

先述したsheetName > sheetIndex > optionsの指定順を間違えなければ、それぞれの設定項目が正常に反映されます。

戻り値

【Sheet】

新しく挿入されたシートのSheetオブジェクトが戻り値となります。

 

使用例

もし、Google スプレッドシートに毎日の売上や活動記録などを記録していたら…そして、その記録を日付ごとにシートで分けるようにしていたら…insertSheetメソッドを活用して、次の日のシートを自動生成する仕組みを作ることで毎日の新規シート作成の手間をなくすことができます。

 

作成したautoSheetGenerateメソッドをトリガーで毎日夜中に自動で起動するように設定しておきましょう。

 

すると、毎日その日の日付のシートが作成された状態で入力に臨むことができます。

関連メソッド

以下のメソッドも確認しておくと、よりinsertSheetを活用することが可能です。(後日追加予定)

yoshi

JavaScript、Google Apps Scriptがメイン。Pythonもちょっとだけ。Google Apps Script開発、Pythonスクレイピングなどをする機会が多いです。ご依頼なども承っております。 記事内容についてのご意見・ご指摘などいただけますと幸いです。

シェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


コメントする