質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

2618閲覧

指定したシートが更新された際にタイムスタンプを押すGAS

yuki0137

総合スコア5

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2021/03/24 07:58

特定のシートの特定の列が更新された際にタイムスタンプが押されるGASを作成しているのですがうまく反映しないのでアドバイスを頂けますでしょうか。

前提・実現したいこと

特定のシートのM列に情報が入った際、同じシートのA列にタイムスタンプが押されるようにしたいです。M列には他システムから抽出したデータを一括してコピペで反映させる前提です。

発生している問題・エラーメッセージ

下記のコードを組みましたがM列を編集してもA列にタイムスタンプが押されません。

該当のソースコード

var ss = SpreadsheetApp.getActiveSpreadsheet(); var shName = ss.getSheetName(); var sh = ss.getSheetByName("シート名"); function onEdit(e) { var row = e.range.getRow(); var col = e.range.getColumn(); var num = e.range.getValues().length; if ((shName == "シート名") && (col == 12)) { sh.getRange(row,col-11,num,1).setValue(getUpdTime()); } } function getUpdTime() { var now = new Date(); var yy = now.getFullYear(); var mm = now.getMonth()+1; var dd = now.getDate(); return yy + "/" + mm + "/" + dd; }

試したこと

以前別シート作成した下記コードをもとに、
var sheet = ss.getActiveSheet(); を
var sheet = ss.getSheetByName("シート名");
var shName = ss.getSheetName();へ、

if(col == 12) { を
if ((shName == "シート名") && (col == 12)) { へ
変えて組んでみましたが上手くいきませんでしたので
ネットから拾った上記のコードで試してみましたが、こちらも上手くいきませんでした。

function setTimeStamp() { // 定義 const TARGET_COLUMN = 'a'; // タイムスタンプを押す列(A列) // シート定義 var ss = SpreadsheetApp.getActiveSpreadsheet(); // 編集したスプレッドシート var sheet = ss.getActiveSheet(); // 編集したシート(タブ) var range = sheet.getActiveRange(); // 編集した範囲 var col = range.getColumnIndex(); // 編集した列 var row = range.getRowIndex(); // 編集した行 // 現在時刻 var currentTime = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd'); if(col == 12) { // 編集した列がM列(12列目)の場合 // タイムスタンプを押す ss.getRange(TARGET_COLUMN + row).setValue(currentTime); } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sawa

2021/03/24 09:26

M列は13ではないですかね
yuki0137

2021/03/25 01:13

A列は0とカウントすると思い込んでいました。そんな単純なことだったとは…。お恥ずかしいです。 無事思うとおりに動作いたしました。ありがとうございました。
sawa

2021/03/25 01:56

問題解決となったようでなによりです。自己解決で回答を入れてクローズとしてください。
yuki0137

2021/03/25 03:02 編集

ありがとうございます!クローズさせていただきます。
guest

回答1

0

自己解決

if ((shName == "シート名") && (col == 13)) {
sh.getRange(row,col-12,num,1).setValue(getUpdTime());

に変更することで解決。

投稿2021/03/25 03:04

yuki0137

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問