search
LoginSignup
21

More than 3 years have passed since last update.

posted at

updated at

【Google Spreadsheet】セルを変更すると、自動的に日付更新するGoogleAppsScript

はじめに

リブセンスでProduct Manager(PM)をしてる新卒2年目の萩原といいます。
今年の1月より転職会議のメディアグループに異動しました。
メディアグループに異動する前までは、営業ばかりしていたため、SQLやGoogleAppSctipt??なにそれ美味しいの?状態でした。
今回は、営業しかしていなかった私が、業務で実際に活用できたGoogleAppsScriptについて記載したいと思います。
普段はSQLの方が圧倒的に使いますが、他のうちの社員が書きそうなのでSQL記事はやめましたw
ちなみに趣味は、マンガと落語です。

対象

Spreadsheetを利用することがあり、自動化とかに興味がある方。(営業や事務など含む)
初心者向け

この記事を読むとできるようになること

特定のセルを変更すると自動的に特定のセルの日付を更新し取得するScriptを使うことができます。
もう少しわかりやすく書くと、例えば、企業情報とそのステータスが記載されているシートがあるとします。
そこでステータスを変更すると更新した日付が自動的に入力されるといった具合です。
(イメージ図でいうとG列を更新すると同じ行のA列が自動的に更新される)
[イメージ図]
image.png
※企業名やステータスは適当です。

業務上、ステータスが更新した日時を記載する必要があり、それを毎回手作業で入力する手間を省くことが目的でした。

手順とスクリプト

それでは実行までの手順とスクリプトです。
  1. Scriptを導入したいSpreadsheetを開く
  2. ツールをクリック
  3. スクリプトエディタをクリックする
  4. 下記のコードをコピペして一部修正する。

function insertLastUpdated() {
  var ss = SpreadsheetApp.getActiveSpreadsheet(); //現在触っているファイルを取得
  var sheet = ss.getSheetByName('hoge'); //対象のシート名を選択(hogeの部分にシート名記載)
  var currentRow = sheet.getActiveCell().getRow(); //アクティブなセルの行番号を取得
  var currentCol = sheet.getActiveCell().getColumn(); //アクティブなセルの列番号を取得
  var currentCell = sheet.getActiveCell().getValue(); //アクティブなセルの入力値を取得
  var updateRange = sheet.getRange('A' + currentRow); //どの列に更新日時を挿入したいか。この場合はA列
  Logger.log(updateRange); //更新日の記入
  if(currentRow > 2 && currentCol == 7) { //2行目以降かつG列の変更を参照とする 
    if(currentCell) {
    updateRange.setValue(new Date());
    }
  }
}

以上です。簡単ですね。

最後に

GSは非エンジニア以外の方が使うことが多いのかなと思います。JSに非常に似ているので、習得もしやすい方ではないでしょうか?(自分はJS含め勉強中です)
プログラミング興味あるけど何から手を付ければいいかわからないという人にはいいかもしれません。

P.S.
初めてのQiita投稿緊張した。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
21