ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】最下部を取得し別シートのデータをコピペする方法
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- GASで値だけをコピーする方法がわかります。
- 貼り付け時に複数の範囲をまとめる方法がわかります。
- 範囲を選択状態にする方法がわかります。
毎回、同じような地味な作業をやり続けることになります。
なので、サクッとマスターして
と答えてあげてください。
動画はこちら
シートはこちら
*クリックすることでシートが開きます。(コピーしてお使いください)
スクリプト
/**
* 複数の範囲を別シートにコピペする
*/
function CopyMultiRange() {
const sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
//コピー元の範囲
const rangelist = sh.getRangeList(['B2:B', 'D2:E', 'G2:G'])
//コピー先
const dsh = SpreadsheetApp.getActiveSpreadsheet().insertSheet()
//コピー先の位置
const start_row = 3
const start_clm = 1
let s_clm = start_clm
//範囲リストの範囲をコピーしていく
rangelist.getRanges().forEach(range => {
// console.log(range.getValues())
range.copyTo(dsh.getRange(start_row, s_clm, range.getNumRows(), range.getNumColumns()), { contentsOnly: true })
s_clm += range.getNumColumns()
})
//範囲を選択状態にする
dsh.getRange(start_row, start_clm, dsh.getLastRow() - start_row + 1, dsh.getLastColumn() - start_clm + 1).activate()
}
ポイント
範囲のコピー
コピー元の範囲.copyTo(コピー先の範囲)
例)
range.copyTo(dsh.getRange(“C3:C13”)
値だけをコピーする
copyTo の引数に { contentsOnly: true } を追加する
例)
range.copyTo(dsh.getRange(“C3:C13”, { contentsOnly: true } )
複数の範囲を取得
getRangeList
例)
const rangelist = sh.getRangeList([‘B2:B’, ‘D2:E’,’G2:G’])
範囲のリストから1つずつ範囲を取り出す。
例)
rangelist.getRanges().forEach(range => {
console.log(range.getValues())
}
選択状態にする
範囲.activate()
例)
dsh.getRange(“A1:A2”).activate()
最後までご覧いただきありがとうございます。
つぎはこちら