LoginSignup
7
10

More than 5 years have passed since last update.

スプレッドシートのコメントを取得する

Posted at

仕事でスプレッドシートのコメントを一覧にまとめる必要があり、1件1件手動でやるのはあまりに効率が悪いので、なんとか自動化出来ないかとググったところ、こちらの記事に行き着きました。

スプレッドシートのコメントを検索する方法

実現方法としてスクリプトエディタでコメントを検索するコードを書くのが一番いい方法だろうと考えていました。が、調べてみると「コメント」の操作は推奨されなくなっていました。

終わった。。。
と思っていたところ、よくよく調べると、Google Apps Script APIではダメだけど、Google Drive APIで実現できそうなことが分かり、やってみました。

Drive APIを有効にする

  1. スクリプトエディタの リソース > Googleの拡張サービス から、 Drive API を有効にする
    スクリーンショット 2018-11-29 16.42.31.png
  2. Google Cloud Platform API ダッシュボードから、 Google Drive API を有効にする
    スクリーンショット 2018-11-29 16.45.36.png

コードを書く

code.gs
function myFunction() {
  var fileId = SpreadsheetApp.getActiveSpreadsheet().getId();
  var comments = Drive.Comments.list(fileId);

  Logger.log(JSON.stringify(comments, null , '\t'));
}

実行!

コメントの内容はもちろん、ステータスやディスカッションの内容までバッチリ取得できました!

{
    "kind": "drive#commentList",
    "selfLink": "https://www.googleapis.com/drive/v2/files/XXXXX/comments?alt=json",
    "items": [
        {
            "content": "test comment @ B1",
            "htmlContent": "test comment @ B1",
            "fileTitle": "スプレッドシートのコメントを取得する",
            "kind": "drive#comment",
            "author": {
                "kind": "drive#user",
                "displayName": "Andysumi",
                },
                "isAuthenticatedUser": true
            },
            "createdDate": "2018-11-29T06:58:05.927Z",
            "deleted": false,
            "replies": [
                {
                    "replyId": "XXXXX",
                    "kind": "drive#commentReply",
                    "author": {
                        "kind": "drive#user",
                        "displayName": "Andysumi",
                        },
                        "isAuthenticatedUser": true
                    },
                    "verb": "resolve",
                    "createdDate": "2018-11-29T07:51:18.378Z",
                    "deleted": false,
                    "modifiedDate": "2018-11-29T07:51:18.378Z"
                }
            ],
            "anchor": "{\"type\":\"workbook-range\",\"uid\":0,\"range\":\"1209420030\"}",
            "modifiedDate": "2018-11-29T07:51:18.378Z",
            "commentId": "XXXXX",
            "status": "resolved",
            "fileId": "XXXXX"
        },
        {
            "content": "test comment @ A1",
            "htmlContent": "test comment @ A1",
            "fileTitle": "スプレッドシートのコメントを取得する",
            "kind": "drive#comment",
            "author": {
                "kind": "drive#user",
                "displayName": "Andysumi",
                },
                "isAuthenticatedUser": true
            },
            "createdDate": "2018-11-29T05:40:55.768Z",
            "deleted": false,
            "replies": [
                {
                    "content": "reply comment",
                    "htmlContent": "reply comment",
                    "replyId": "XXXXX",
                    "kind": "drive#commentReply",
                    "author": {
                        "kind": "drive#user",
                        "displayName": "Andysumi",
                        },
                        "isAuthenticatedUser": true
                    },
                    "createdDate": "2018-11-29T06:57:47.196Z",
                    "deleted": false,
                    "modifiedDate": "2018-11-29T07:50:56.501Z"
                }
            ],
            "anchor": "{\"type\":\"workbook-range\",\"uid\":0,\"range\":\"396321758\"}",
            "modifiedDate": "2018-11-29T07:50:56.501Z",
            "commentId": "XXXXX",
            "status": "open",
            "fileId": "XXXXX"
        }
    ]
}

最後に

当初はGoogle Apps Script API使っての自動化を考えていましたが、手段は違えど、要件はみたせそうなので、良かったです!
Google Apps Script APIでサクッと取得できるといいのですが、当分実現しそうにないですね。。。
Provide read/write access to comments in Google Sheets

参考

7
10
0

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
  3. You can use dark theme
What you can do with signing up
7
10