ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】特定のフォルダに新規シートを作成する方法
GASを使用して特定のフォルダに新たにスプレッドシートを作成することができます。
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
こんなことが実現できます。
- セルを更新したタイミングでデータを更新する方法がわかります。
- セルを更新した日時を自動的に表示させることができます。
なので、サクッとマスターして
と答えてあげてください。
動画はこちら
スクリプト
function onEdit(e) {
const ws = "timestamp"
let row = e.range.getRow()
let col = e.range.getColumn()
let currnetDate = new Date() //現在の日時
if (row >= 2 && col == 1 && e.source.getActiveSheet().getName() === ws) { //シートがwsでかつ1列目で2行目以降か?
e.source.getActiveSheet().getRange(row, 4).setValue(currnetDate)
if (e.source.getActiveSheet().getRange(row, 3).getValue() === "") { //Date Enterdが空のとき
e.source.getActiveSheet().getRange(row, 3).setValue(currnetDate) //Date Enterdに日時を入れる
}
}
}
const ws = "timestamp"
シート名は、timestamp
にしているのであなたの環境に合わせて
変更してください。
シートはこちら
※クリックするとシートが開きます。
ポイント
onEdit
関数は、スプレッドシートの編集時に飛んでくる関数です。
引数は、なんでもいいのですが、通常(e)を指定します。
e.range.getRow()
e.range.getColumn()
で、現在の入力位置を取得します。
onEdit関数は、スプレッドシートを編集する度に飛んでくるので、
処理が不要な場合は早めに返して(return)あげましょう。
さらに
どのシートでも対応する場合
どのシートでも対応したいとのご質問をいただきました。
動画
スクリプト
function onEdit(e) {
// const ws = "timestamp"
let row = e.range.getRow()
let col = e.range.getColumn()
// if (row >= 2 && col == 1 && e.source.getActiveSheet().getName() === ws) { //シートがwsでかつ1列目で2行目以降か?
if (row >= 2 && col == 1) { //1列目で2行目以降か?
let currnetDate = new Date() //現在の日時
e.source.getActiveSheet().getRange(row, 4).setValue(currnetDate)
if (e.source.getActiveSheet().getRange(row, 3).getValue() === "") { //Date Enterdが空のとき
e.source.getActiveSheet().getRange(row, 3).setValue(currnetDate) //Date Enterdに日時を入れる
}
}
}
ポイント
シートを比較している箇所(&& e.source.getActiveSheet().getName() === ws
)を
削除すればOKです。
別件ですが、日時の取得( let currnetDate = new Date() //現在の日時)
の
位置をずらし、1列目で2行目以降の場合のみ日時を取得するようにしました。
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】チェックされた行のメールを送信する方法(Gスプレッドシート)