別ブックをGoogleドライブの特定フォルダに保存する
GASを使用して、別のスプレッドシートのブック全体をコピーして特定のドライブを指定して貼り付ける方法は次のようになります。
- 別のスプレッドシートを開く
javascriptCopy codevar ss = SpreadsheetApp.openById('スプレッドシートID');
- スプレッドシートのブックをコピーする
javascriptCopy codevar copy = DriveApp.getFileById(ss.getId()).makeCopy('コピーしたスプレッドシート名');
- 貼り付け先のドライブを指定する
javascriptCopy codevar folder = DriveApp.getFolderById('貼り付け先のフォルダID');
copy = copy.moveTo(folder);
- 貼り付けたファイルを新しいスプレッドシートとして開く
javascriptCopy codevar newSs = SpreadsheetApp.openById(copy.getId());
これにより、別のスプレッドシートのブック全体をコピーして、特定のドライブを指定して貼り付けることができます。ただし、スプレッドシートIDやフォルダID、コピーしたスプレッドシート名は、それぞれのスプレッドシートとフォルダに合わせて変更する必要があります。また、貼り付けたファイルを新しいスプレッドシートとして開くことで、そのスプレッドシートで必要な処理を行うことができます。
別のスクリプト
コピー元のスプレッドシート全体が新しいスプレッドシートにコピーされ、新しいフォルダーが作成されます。そして、新しいスプレッドシートがそのフォルダーに移動されます。
function copySpreadsheetToFolder() {
// Step 1: Get the ID of the spreadsheet to copy
var spreadsheetId = "<spreadsheet-id>"; // Replace with the ID of the spreadsheet to copy
// Step 2: Create a new spreadsheet
var newSpreadsheet = SpreadsheetApp.create("<new-spreadsheet-name>");
// Step 3: Copy the source spreadsheet to the new spreadsheet
var sourceSpreadsheet = SpreadsheetApp.openById(spreadsheetId);
sourceSpreadsheet.copyTo(newSpreadsheet);
// Step 4: Create a new folder
var folder = DriveApp.createFolder("<new-folder-name>");
// Step 5: Move the new spreadsheet to the new folder
var file = DriveApp.getFileById(newSpreadsheet.getId());
file.setParent(folder);
}
解説
- スプレッドシートのIDを取得する
- コピー元のスプレッドシートを開き、URLのスプレッドシートIDを取得する。
URLは以下のような形式になっています。
https://docs.google.com/spreadsheets/d/スプレッドシートID/edit#gid=0
- スプレッドシートIDは、URLの「/d/」と「/edit」の間の部分です。
- コピー元のスプレッドシートを開き、URLのスプレッドシートIDを取得する。
- 新しいスプレッドシートを作成する
- コピー元のスプレッドシートと同じフォルマットで、新しいスプレッドシートを作成します。これには、SpreadsheetApp.create()メソッドを使用します。
- 変数
newSpreadsheet
に、新しいスプレッドシートを作成します。SpreadsheetApp.create()
メソッドを使用して、新しいスプレッドシートを作成し、作成されたスプレッドシートのオブジェクトを返します。ここでは、<new-spreadsheet-name>
という文字列が指定されていますが、実際には新しいスプレッドシートの名前に置き換える必要があります。
- コピー元のスプレッドシートを新しいスプレッドシートにコピーする
- copyTo()メソッドを使用して、コピー元のスプレッドシート全体を新しいスプレッドシートにコピーします。
- 変数
sourceSpreadsheet
に、コピー元のスプレッドシートを開きます。SpreadsheetApp.openById()
メソッドを使用して、IDを指定してスプレッドシートを開くことができます。 sourceSpreadsheet.copyTo(newSpreadsheet)
メソッドを使用して、コピー元のスプレッドシートを新しいスプレッドシートにコピーします。このメソッドは、コピー元のスプレッドシートの内容を新しいスプレッドシートにコピーします。
- フォルダーを作成する
- DriveApp.createFolder()メソッドを使用して、新しいフォルダーを作成します。
- 変数
folder
に、新しいフォルダを作成します。DriveApp.createFolder()
メソッドを使用して、新しいフォルダを作成します。
- 新しいスプレッドシートをフォルダーに移動する
- setParent()メソッドを使用して、新しいスプレッドシートを作成したフォルダーに移動します。
コメント