【GAS】スプレッドシートに日付とエラーメッセージを書き出す関数

2020年2月10日

GASで例外が出たときにそのメッセージを確認するため、外部のファイルに書き出したかったので作成した。

コード

function writeDateAndErrorMessageToSheet( sheet, message ) {
  const ROW   = getTargetRow( sheet );
  const CELLS = sheet.getRange( ROW, 1, 1, 2 );
  
  CELLS.setValues( [ [ new Date(), message ] ] );
}

function getTargetRow( sheet ) {
  var row = 1;
  
  while ( true ) {
    var cell          = sheet.getRange( row, 1 );
    var isWrittenDate = cell.getValue() !== "";
    
    if ( !isWrittenDate ) break;
    ++row;
  }
    
  return row;
}

使い方

引数に対象のシートとエラーのメッセージを指定して呼ぶ。

try {
  // 処理
}
catch ( error ) {
  const KEY         = "...";
  const SPREADSHEET = SpreadsheetApp.openById( KEY );
  const SHEET       = SPREADSHEET.getActiveSheet();
  
  writeDateAndErrorMessageToSheet( SHEET, error );
}

これでエラーが出るたび、順にエラーメッセージが書き出される。

スプレッドシートへエラーメッセージを書き出す