DioDocs for Excel
DioDocs for Excel
スレッド化されたコメント
機能 > コメント > スレッド化されたコメント

スレッド化されたコメントは、会話やディスカッションのように表示されるスプレッドシートのコメントを示します。これらのコメントは、ユーザーが会話につながるコメントに返信できる[返信] ボックスを提供します。

DioDocs for Excelでは、ICommentThreadedインタフェースを使用してスレッド形式のコメントを追加できます。特定のワークシートのスレッド化されたコメントのコレクション内の各コメントは、ICommentsThreadedオブジェクトによって表されます。コメントは、行、列の順にコレクションに格納されます。

メモ: ワークシートがJSONにエクスポートされる場合、スレッド化されたコメントがコメントに変換されます。

スレッド化されたコメントの作成

ワークシートのセルにスレッド化されたコメントを作成するには、IRangeインタフェースのAddCommentThreadedメソッドを使用できます。 このメソッドは、コメントのテキストと作成者の名前をパラメータとして受け取ります。

C#
コードのコピー
//範囲C3に対してスレッド化されたコメントを作成します
ICommentThreaded commentThreadedC3 = worksheet.Range["C3"].AddCommentThreaded("Do these sales numbers include the subsidiary divisions?", "Bill");

//commentThreadedC3に返信を追加します
ICommentThreaded Reply = commentThreadedC3.AddReply("Yes, they do.", "Even");

スレッド化されたコメントへの返信の追加

スレッド化されたコメントに返信を追加するには、ICommentsThreadedインタフェースのAddReplyメソッドを使用できます。これにより、スレッド化されたコメントが最上位レベルのコメントの場合は、返信が返信のコレクションに追加されます。スレッド化されたコメントが返信の場合は、親の返信のコレクションに返信が追加されます。返信のコレクションを取得するには、Repliesプロパティを使用します。

C#
コードのコピー
//commentThreadedC3に返信を追加します
ICommentThreaded Reply_1 = commentThreadedC3.AddReply("Mark's reply", "Mark");
ICommentThreaded Reply_2 = commentThreadedC3.AddReply("Bill's reply", "Bill");

スレッド化されたコメントの変更

スレッド化されたコメントを変更するには、そのコメントのTextプロパティを新しい文字列に設定します。

C#
コードのコピー
//commentTHreadedC3に対して新しいテキストを設定します
commentThreadedC3.Text = "New Content";

//Reply_1を削除します
Reply_1.Delete();

//Reply_2に対して新しいテキストを設定します
Reply_2.Text = "Bill's new reply";

スレッド化されたコメントの読み取り

DioDocs for Excelには、スレッド化されたコメントとその属性(日付と時刻、作成者など)を読み取ることができるさまざまなプロパティがあります。ワークシート内のスレッド化されたコメントのコレクション全体を取得するには、IWorksheet.CommentsThreadedメソッドを使用します。また、 ICommentsThreadedコレクションから特定のスレッド化されたコメントを取得するには、Indexプロパティを使用します。また、Countプロパティを使用して、ワークシート内のコメントの総数を取得することもできます。スレッド化されたコメントが返信である場合に親を取得するには、ICommentsThreadedインタフェースのParentプロパティを使用します。コメントの日付と時刻を読み取るには、Dateプロパティプロパティを使用し、コメントの作成者を読み取るには、Authorプロパティを使用します。ワークシートのスレッド化されたコメントの次のコメントまたは前のコメントを取得することもできます。

C#
コードのコピー
//特定のコメントを取得します
Console.WriteLine("Get a specific comment : " + worksheet.CommentsThreaded[0].Text);

//返信数を取得します
Console.WriteLine("Replies Count : " + commentThreadedC3.Replies.Count);

//特定のコメントに対するすべての返信を取得します
for (int i = 0; i < commentThreadedC3.Replies.Count; i++)
    Console.WriteLine("Get replies text[" + i + "] : " + commentThreadedC3.Replies[i].Text);

//コメントの作成者を取得します
Console.WriteLine("Author Name : " + commentThreadedC3.Author.Name.ToString());

//スレッド化されたコメントのコレクションを取得します
Console.WriteLine("Get collection of threaded comments : " + worksheet.CommentsThreaded.Count);

//コメントの日付スタンプを取得します
Console.WriteLine("Date of Comment : " + commentThreadedC3.Date.ToShortDateString());

//コメントのタイムスタンプを取得します
Console.WriteLine("Time of Comment : " + commentThreadedC3.Date.ToShortTimeString());

//C3の次のコメントを取得します
Console.WriteLine("C3's next comment : " + commentThreadedC3.Next().Text);

//D3の前のコメントを取得します
Console.WriteLine("D3's previous comment : " + commentThreadedD3.Previous().Text);

//返信の親を取得します       
Console.WriteLine("Parent of Reply_1 : " + Reply_1.Parent.Text);
Console.WriteLine("Parent of Reply_2 : " + Reply_2.Parent.Text);

上記の実装を行うと、コンソールが次のように表示されます。

スレッド化されたコメントの無効化

DioDocs for Excelでは、スレッド化されたコメントが解決かどうかの状態を設定するために、IsResolvedプロパティがあります。このプロパティをtrueに設定すると、スレッド化されたコメントが無効になり、そのコメントを編集および返信することができません。

C#
コードのコピー
//スレッド化されたコメントを無効にします
commentThreadedC3.IsResolved = true;

スレッド化されたコメントの削除

スレッド化されたコメントとそのコメントに関連付けられている返信を削除するには、ICommentThreaded.Deleteメソッドを使用できます。このメソッドは、ターゲットのCommentThreadedオブジェクトが最上位レベルのコメントである場合、指定されたコメントを削除します。ただし、ターゲットのコメントがスレッド化されたコメントの返信である場合、このメソッドはその返信が親コメントの返信のコレクションから削除されます。また、 IRange.ClearCommentsThreadedメソッドを使用して、セルの範囲からスレッド化されたコメントを削除することもできます。

C#
コードのコピー
//範囲C3のスレッド化されたコメントを作成します
ICommentThreaded commentThreadedE3 = worksheet.Range["E3"].AddCommentThreaded("Range E3's threaded comment", "Even");

//commentThreadedC3に返信を追加します
worksheet.Range["F3"].AddCommentThreaded("Range F3's threaded comment", "Charles");
        
//単一セルのスレッド化されたコメントを削除します
commentThreadedE3.Delete();
        
//セルのスレッド化されたコメントの範囲を削除します
worksheet.Range["F3:G4"].ClearCommentsThreaded();

作成者名の設定

コメントの作成者を設定するには、IAuthorインタフェースのNameプロパティを使用します。

C#
コードのコピー
//作成者名を設定します
IAuthor author = commentThreadedC3.Author;
author.Name = "Alex";