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

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

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

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

Google Apps Script

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

Q&A

解決済

1回答

1188閲覧

GAS スプレッドシート内のデータ削除

Namero

総合スコア1

Google スプレッドシート

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

Google Apps Script

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

0グッド

0クリップ

投稿2021/07/12 06:04

前提・実現したいこと

今回、GASを初めて触りました。プログラムはいろんなサイトを参考にさせて頂きました。
googleスプレッドシートへのログ(googleに保存した写真のURL)の書き出し自動化が目的です。
プログラムを実行都度、対象のスプレッドシート1行目(ヘッダー部)以外の既存ログを削除して、
ログの書き出しをするようにしたいです。何卒、宜しくお願い致します。

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

既存ログを削除できずに、下の行に重複したログが追加されてしまいます。

該当のソースコード

function appendLogToSpreadsheet(log, sheetId, sheetName) {

if (sheetName === void 0) { sheetName = 'sheet1'; } var spreadSheet = SpreadsheetApp.openById(sheetId); spreadSheet.getSheetByName(sheetName).appendRow([new Date(), log[0], log[1], log[2], log[3]]); SpreadsheetApp.flush();

}

試したこと

function appendLogToSpreadsheet(log, sheetId, sheetName) {
if (sheetName === void 0) { sheetName = 'sheet1'; }
var spreadSheet = SpreadsheetApp.openById(sheetId);

-------------下記、追加しましたが、うまくできませんでした-------------
spreadSheet.getRange('2:2').activate();
var currentCell = spreadSheet.getCurrentCell();
spreadSheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
currentCell.activateAsCurrentCell();
spreadSheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
-------------------------------ここまでです-----------------------------
spreadSheet.getSheetByName(sheetName).appendRow([new Date(), log[0], log[1], log[2], log[3]]);
SpreadsheetApp.flush();
}

補足情報(FW/ツールのバージョンなど)

Google Apps Script

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

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

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

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

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

guest

回答1

0

ベストアンサー

GAS

1spreadSheet.getSheetByName(sheetName).getRange(1,1,1,5).setValues([[new Date(), log[0], log[1], log[2], log[3]]]); 2

上記の修正で毎回1行目に更新されるはずです。

投稿2021/07/14 04:27

gas.engine

総合スコア608

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

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

Namero

2021/07/14 13:55

ありがとうございます、おかげさまで解決致しました。 感謝致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問