ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】複数のNGワードを 見つける方法(Gスプレッドシート)
セル内に含まれるNGワードを判別できるようになります。
GASのカスタム関数の効果的な使い方がわかります。
特定のシートから値を読み込むことができます。
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- GASで一気にセルをコピペする方法がわかります。
- GASで時間を計測する方法がわかります。
逆に、知らないと
あなた:「なんかセルをコピーすると遅い」
という状態が延々続きます。
なので、サクッと動画をご覧いただき
てな感じで、答えてあげてください。
動画はこちら
マインドセットします。
マインドセット
ループ内でスプレッドシートの値の設定や取得を行うときは注意しろ
ループ内でスプレッドシートの値の設定や取得を行うときは注意しろ
スプレッドシートに対する関数は非常に遅いです。
なので、速度を改善したければ
なるべく呼び出す回数を減らしましょう。
動画で使用したスクリプト
function copysell() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sh1 = ss.getSheetByName('GAS35元')
const sh2 = ss.getSheetByName('GAS35先')
const lr = sh1.getLastRow()
console.log(lr)
const lc = sh1.getLastColumn()
console.log(lc)
for (let i = 1; i <= lr; i++) {
for (let s = 1; s <= lc; s++) {
let val = sh1.getRange(i, s).getValue()
sh2.getRange(i, s).setValue(val)
}
}
// let values = sh1.getDataRange().getValues()
// console.log(values)
// console.log(values.length)
// console.log(values[0].length)
// sh2.getRange(1, 1, values.length, values[0].length).setValues(values)
}
function speedtest() {
const label = '計測'
console.time(label)
copysell()
console.timeEnd(label)
}
シートはこちら
※クリックするとシートが開きます。
では、今回のGoogleシートマスターへの究極の方法です。
Step1.
上記スクリプトをコピペする
Step2.
セーブしてspeedtest()を実行してみる
Step3.
ループの箇所をコメントアウトする
Step4.
setValues()の箇所のコメントを外す
Step5.
早くなっていることを確認する
上記スクリプトをコピペする
Step2.
セーブしてspeedtest()を実行してみる
Step3.
ループの箇所をコメントアウトする
Step4.
setValues()の箇所のコメントを外す
Step5.
早くなっていることを確認する
では、早速、スクリプトをコピペしてください
今すぐです。
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS36】セル更新時に自動的にソートする方法
GAS セルを更新時にソート(並べ替え)する方法がわかります。