GASでスプレッドシートの指定範囲をコピーする方法を紹介します!
指定範囲のデータを別の範囲にコピーする:copyTo(destination)
指定範囲のデータを別の範囲にコピーします。
パラメータ
名前 | タイプ | 説明 |
---|---|---|
destination | Range | セルの範囲 |
戻り値
なし |
セルの範囲を指定して、指定範囲にコピーする
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination);
}
サンプルAシートのコピー元を、サンプルBシートにコピーします。
サンプルコードを実行すると、
このように値も書式もコピーされます。
公式ドキュメント:Range > copyTo(destination)
指定範囲のデータを別の範囲に特殊貼り付けする:copyTo(destination, copyPasteType, transposed)
指定範囲のデータを別の範囲に特殊貼り付けします。
パラメータ
名前 | タイプ | 説明 |
---|---|---|
destination | Range | セルの範囲 |
copyPasteType | CopyPasteType | 貼り付け方法を指定します
PASTE_NORMAL:値も書式も貼り付けます PASTE_NO_BORDERS:枠線を除くすべてを貼り付けます PASTE_FORMAT:書式のみ貼り付けます PASTE_FORMULA:数式のみ貼り付けます PASTE_DATA_VALIDATION:データの入力規則のみ貼り付けます PASTE_VALUES:値のみ貼り付けます PASTE_CONDITIONAL_FORMATTING:条件付き書式のみ貼り付けます PASTE_COLUMN_WIDTHS:列幅のみ貼り付けます |
transposed | Boolean | Trueなら転置して貼り付けます |
戻り値
なし |
値も書式も貼り付ける
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, SpreadsheetApp.CopyPasteType.PASTE_NORMAL);
}
サンプルAシートのコピー元を、サンプルBシートに値も書式も貼り付けます。
サンプルコードを実行すると、
このように値も書式も貼り付けることができます。
枠線を除くすべてを貼り付ける
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, SpreadsheetApp.CopyPasteType.PASTE_NO_BORDERS,false);
}
サンプルAシートのコピー元を、サンプルBシートに枠線を除くすべてを貼り付けます。
サンプルコードを実行すると、
このように枠線を除くすべてを貼り付けることができます。
書式のみを貼り付ける
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, SpreadsheetApp.CopyPasteType.PASTE_FORMAT,false);
}
サンプルAシートのコピー元を、サンプルBシートに書式のみ貼り付けます。
サンプルコードを実行すると、
このように書式のみを貼り付けることができます。
数式のみ貼り付ける
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, SpreadsheetApp.CopyPasteType.PASTE_FORMULA,false);
}
サンプルAシートのコピー元を、サンプルBシートに数式のみを貼り付けます。
サンプルコードを実行すると、
このように数式のみ貼り付けることができます。
データの入力規則のみを貼り付ける
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, SpreadsheetApp.CopyPasteType.PASTE_DATA_VALIDATION,false);
}
サンプルAシートのコピー元を、サンプルBシートにデータの入力規則のみを貼り付けます。
サンプルコードを実行すると、
このようにデータの入力規則のみが貼り付けることができます。
値のみを貼り付ける
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, SpreadsheetApp.CopyPasteType.PASTE_VALUES,false);
}
サンプルAシートのコピー元を、サンプルBシートに値のみを貼り付けます。
サンプルコードを実行すると、
このように値のみが貼り付けることができます。
条件付き書式のみを貼り付ける
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, SpreadsheetApp.CopyPasteType.PASTE_CONDITIONAL_FORMATTING,false);
}
サンプルAシートのコピー元を、サンプルBシートに条件付き書式のみを貼り付けます。
サンプルコードを実行すると、
このように条件付き書式のみが貼り付けることができます。
列幅のみを貼り付ける
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, SpreadsheetApp.CopyPasteType.PASTE_COLUMN_WIDTHS,false);
}
サンプルAシートのコピー元を、サンプルBシートに列幅のみを貼り付けます。
サンプルコードを実行すると、
このように列幅のみを貼り付けることができます。
転置して貼り付ける
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, SpreadsheetApp.CopyPasteType.PASTE_NORMAL,true);
}
サンプルAシートのコピー元を、サンプルBシートに転置して貼り付けます。
サンプルコードを実行すると、
このように転置して貼り付けることができます。
公式ドキュメント:Range > copyTo(destination, copyPasteType, transposed)
指定範囲のデータを別の範囲に貼り付けする(オプションあり):copyTo(destination, options)
指定範囲のデータを別の範囲に貼り付けします。(オプションあり)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
destination | Range | セルの範囲 |
optinos | Object | 以下のオプションを指定できます
formatOnly:書式のみ貼り付ける場合はtrue contentsOnly:値のみ貼り付ける場合はtrue |
戻り値
なし |
書式のみを貼り付ける(formatOnly:true)
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, {formatOnly:true});
}
サンプルAシートのコピー元を、サンプルBシートに書式のみを貼り付けます。
サンプルコードを実行すると、
このように書式のみ貼り付けることができます。
値のみを貼り付ける(contentsOnly:true)
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
// サンプルAのシート指定
const source = ss.getSheetByName("サンプルA").getRange("A2:C6");
// サンプルBのシートを指定
const destination = ss.getSheetByName("サンプルB").getRange("A2:C6");
// サンプルBのシート範囲を指定
source.copyTo(destination, {contentsOnly:true});
}
サンプルAシートのコピー元を、サンプルBシートに値のみを貼り付けます。
サンプルコードを実行すると、
このように値のみを貼り付けることができます。
まとめ
スプレッドシートの指定範囲をコピーするいろいろな方法をまとめてみました!
毎回同じようなデータをコピーしているような作業があればこれで自動化できそうですね!
コメント