web-dev-qa-db-ja.com

GoogleAppsスクリプトスプレッドシートコメントの自動化

今日は、特にSpreadsheetsについてのGoogleAppsScriptsについて質問があります。すでにドキュメントを確認しました ここ (はい、スプレッドシート内のシートのドキュメント)が、探しているものが見つかりませんでした。 。これがシッチです:

1.)セルがGoogleスプレッドシートで編集されている場合、私が持っている関数は、関数を使用して[〜#〜] note [〜#〜]を設定します(はい、cell。 setComment()ですが、実際にはメモが作成されます。一貫性を保ってくれてありがとう、Google!):

function onEdit() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getActiveSheet();
var cell = sheet.getActiveCell();
cell.setComment("Last modified: + (new Date()));
}

2.)メモはコメントに「置き換えられました」... 2012年9月5日?多分?代わりにそれらを使用したいと思います。

3.)両方のタイプの「セル表記」には、[〜#〜] set [〜#〜] Note/Commentのみに機能があり、[〜#〜 ] add [〜#〜](ドキュメントによる)。

4.)メモ/コメントを設定する代わりに、新しいメモ/コメント(できればコメント、読みやすく)を追加する機能を持つ関数を参照または記述したいと思います。

5.)スプレッドシート自体のGUIから手動でメモ/コメントを追加できます(セルを右クリックして[メモを挿入]または[コメントを挿入]を選択します。これらの右クリック機能が存在するため、私はできると信じています。同じことを行うスクリプトを作成しますが、セルが編集されたときに自動的に呼び出されるようにします。

6.)この機能は、セルの改訂履歴を追跡するために使用されます。新しいスプレッドシートを作成して、その新しいスプレッドシートに改訂履歴を簡単に送信できることは知っていますが、追跡する必要のあるスプレッドシートが10個あることを考えると、履歴を追跡するために10個の新しいスプレッドシートは必要ありません。同じスプレッドシートに保存すると、作業が簡単になります。

誰かが私を助けることができれば、それは大いにありがたいです!

13

スプレッドシートサービスを介してコメントを操作する方法はありません Issue 3675665 を参照してください。 (必要に応じてスターを付けてください。)

代わりに、すべての「コメント」メソッドはNotesで機能します。

次の方法では、既存のタイムスタンプに新しい「変更済み」タイムスタンプが追加されます。残念ながら、実際のコメントほど見栄えは良くありません。

function onEdit() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var cell = sheet.getActiveCell();
  var comments = cell.getComment();
  // Newline works in msgBox, but not in Note.
  comments = comments + "\\nModified: " + (new Date());
  //Browser.msgBox(comments);
  cell.setComment(comments);
}
12
Mogsdad

Google Apps Scriptで Google Drive API を使用すると、Googleドキュメントにコメントを作成できます。
[。

function insertDriveComment(fileId, comment, context) {
  var driveComment = {
    content: comment,
    context: {
      type: 'text/html',
      value: context
    }
  };
  Drive.Comments.insert(driveComment, fileId);  
}

ドキュメントとスプレッドシートのコメントのアンカーは独自のものであるため、プログラムでコメントをセル(またはGoogleドキュメントの単語)に添付することはできないことに注意してください(ページ下部のビデオを確認してください ここ

お役に立てば幸いです。

6
denys

Dic 2018の回答を更新しました:

現在、GoogleはRangeクラスでsetNote(String)メソッドとsetNotes(Object [])メソッドをサポートしています。

getComment()メソッドとsetComment()メソッドは存在しなくなりました。

3
async3