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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Google Apps Script

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

Google

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

Q&A

解決済

2回答

2446閲覧

spreadsheetでgoogle App Scriptが使えない

Bolcof

総合スコア18

Google Apps Script

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

Google

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

0グッド

0クリップ

投稿2018/11/21 09:17

spreadsheetが変更されたとき、その列にタイムスタンプをつけたいのですが、まず書いたgsがspreadsheetに適用できず困っています。

https://tonari-it.com/gas-script-editor/
http://bonheur.hatenablog.jp/entry/2017/06/30/130437
この方のブログを参考にしています。

まずspreadsheetを作り、[ツール]➡[スクリプトエディタ]からAppScriptダッシュボードを開き、以下のコードを書きました。

gs

1function insertLastUpdated() { 2 Logger.log('Hello GAS!'); 3 var ss = SpreadsheetApp.getActiveSheet();//現在触っているシートを取得 4 var currentRow = ss.getActiveCell().getRow() //アクティブなセルの行番号を取得 5 var currentCell = ss.getActiveCell().getValue(); //アクティブなセルの入力値を取得 6 var updateRange = ss.getRange('A' + currentRow) //どの列に更新日時を挿入したいか。この場合はA列 7 Logger.log(updateRange); 8 //更新日の記入 9 if(currentRow>1){ //1行目を除くため 10 if(currentCell) { 11 updateRange.setValue(new Date()); 12  } 13 } 14} 15

そして保存して実行を承認し、ダッシュボード上でログが出るのは見られました。
しかしいざspreadsheetに戻ってリロードしても適用されておらず、[アドオン]タブを見てみてもこの関数は出てきません。

本当に初歩でつまずいてるのだとは思うのですが、どうか教えていただけると助かります。

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

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

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

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

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

guest

回答2

0

ベストアンサー

そもそも勘違いしていて、このコードを書けば数値を変更したときに自動でタイムスタンプが更新されるのかと思っていました。

過去回答からのコピペで恐縮ですが、↑のようなことをしたければ↓をスクリプトエディタにはりつけて、シートで適当な入力をすると、その右のセルに日時が入ります。
ご参考まで
(こちらは、「関数の実行」をしてもエラーになるばかりで何も起きません。モノによって動きや使いかたが全然違うので、やりたいことを整理したうえで、調べるなり質問するなりしてみてください)

javascript

1function onEdit(e) { 2 var r = e.range.getRow(); 3 var c = e.range.getColumn(); 4 e.range.getSheet().getRange(r, c+1).setValue(getCurrentTime()); 5} 6function getCurrentTime() { 7 var ctime = new Date(); 8 var MM = ctime.getMonth()+1; 9 var dd = ctime.getDate(); 10 var hh = ctime.getHours(); 11 var mm = ctime.getMinutes(); 12 var t = MM+"/"+dd+"_"+hh+":"+mm+"発表"; 13 return t; 14}

投稿2018/11/22 08:07

papinianus

総合スコア12705

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

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

0

どうしたいかが分かりません。困っていることしか書いてないです。

困っていることへの回答

  • アドオンタブには出てきません

→独自メニューを作って出すことは可能ですが…

  • リロードしても実行されません

→どういうタイミングで実行するかによってかわりますが、リロードだけでは一般に動作しません

使い方

その参考にしたサイトのスクリプトは、
0. どこかのシートのどこかのセルを選択(Bから右、2行目から下であることが必要)
0. スクリプトエディタに移動
0. 関数の実行から「insertLastUpdated()」を実行
0. シートに戻ると選択した行のA列に時間が入っている
というものです。
つまり、リロードして使うようなものではないです

投稿2018/11/21 09:27

papinianus

総合スコア12705

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

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

Bolcof

2018/11/21 09:47 編集

なるほど。すいません、ありがとうございます。 そもそも勘違いしていて、このコードを書けば数値を変更したときに自動でタイムスタンプが更新されるのかと思っていました。 「使い方」に書いていただいた通りにしたらその通りにできました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問