行う内容
今回はシートのコピーではなく、
特定のセルのみをコピーして新規シートへ貼り付けしたいと思います。
具体的には、下記のようなシートから「B2:D6」のみをコピペです。
「コピー先」というシートを新規追加して、貼り付けます。
コード
コードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
function myFunction0515() { // スプレッドシートを読み込む let mySheet = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシートに新しいシートを追加挿入 let newSheet = mySheet.insertSheet(); // 新しく追加したシートを先頭に移動 mySheet.moveActiveSheet(1); // 追加挿入したシートに名前を設定 newSheet.setName("コピー先"); // コピー元のシートを指定する let copy_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('コピー元'); /****************************************** * コピー元のシートから、コピー先のシートへコピペ * コピー元:2,2,5,3 = B2:D6 * B2から、5行3列がコピー対象である * コピー先:1,1 = A1 ******************************************/ // コピー元シートからcopyして、コピー先シートA1セルへ貼り付けを行う copy_sheet.getRange(2,2,5,3).copyTo(newSheet.getRange(1, 1)); } |
解説
流れは以下です。
・スプレッドシートを読み込む
・スプレッドシートに新規シートを追加する
・追加したシートを左端へ移動し、シート名を「コピー先」へ変更する
・コピー元シートから対象のセルをコピーする
・コピー先シートへ貼り付けを行う
getrangeの範囲指定にクセがあります。
下記は「2,2,5,3」が「B2:D6」を指定しています。
2,2がB2。B2から↓へ5行、→へ3列。でD6。
という意味です。
1 2 |
// コピー元シートからcopyして、コピー先シートA1セルへ貼り付けを行う copy_sheet.getRange(2,2,5,3).copyTo(newSheet.getRange(1, 1)); |
以上です。
最後までお読みいただきありがとうございました!