2017/08/28追記 このページの内容のままだと少し使いづらかったので、【改訂版】Google Apps Scriptを使いSpreadsheetsでカンタンに更新日時と起票日を自動入力する方法を新しく作りました。それに伴い本ページを【旧版】としました。よろしければ上記改訂版をご利用ください。
会社でよくGoogle docsやGoogle spreadsheetsを使って色んな人と仕事や情報を共有しながら仕事をするんだけど、プロジェクトのタスク一覧をスプレッドシートで作った際にタイムスタンプ(更新日時)と起票日が自動で記入されないのは常々不便だなと思っていた。
ということで、カンタンなものではあるがGoogle Apps Scriptを使って、タスクを追加した時に起票日と更新日時が、更新した時には更新日時のみが自動更新されるスクリプトを作った。
コードは以下参照。
function insertLastUpdated() { var sheet = SpreadsheetApp.getActiveSheet(); //現在触っているシートを取得 var currentRow = sheet.getActiveCell().getRow(); //アクティブなセルの行番号を取得 var currentCell = sheet.getActiveCell().getValue(); //アクティブなセルの入力値を取得 var updateRange = sheet.getRange('A' + currentRow) //アクティブなセルのある更新日のレンジを取得(現状、"更新日"の列はAで設定) var startDateRange = sheet.getRange('G' + currentRow) //起票日のセルのレンジを取得(現状、"起票日"の列はGで設定) //更新日の記入 if(currentRow>1){ //もし行番号が1より大きい場合(固定行を除くための処理) if(currentCell) { //もし触っているセルが空でなかったら updateRange.setValue(new Date()); } } //起票日の記入 if(currentRow>1){ //もし行番号が1より大きい場合(固定行を除くための処理) if(!startDateRange.getValue() && currentCell) { //もし起票日のセルが空白だったら startDateRange.setValue(new Date()); } } }
Spreadsheets用のContainer Boundスクリプトです。 とりあえずさくっと公開しようってことで細かい説明は省く。より詳しい説明が欲しいっていう問い合わせがあれば書き加える予定です。
▼デモサイトはこちら
DEMO: https://docs.google.com/spreadsheets/d/1DDMJFQesv0zLHJcrOA5PkwGNLjcdDxWiwnaau-7deBc/edit?usp=sharing
プログラムは独学なのでもっと良い書き方がありましたらご指摘下さい。
誰かのお役に立ちますように。
コメント
[…] 【旧版】Google Apps Scriptを使いSpreadsheetsでカンタンに更新日時と起票日を自動入力する方法 […]