Excel VBA スレッド形式のコメントのテキスト(内容)を取得-Text

Excel VBAスレッド形式コメントテキスト内容)を取得する記録です。

コメントのテキストを取得、変更するには、「CommentThreaded」オブジェクトの「Text」メソッドを使います。

< スポンサーリンク >





「Text」メソッド構文

スレッドコメントのテキストを設定します。

CommentThreadedオブジェクト.Text (Text, Start, Overwrite)

Text=省略可能。追加する文字を指定。

Start=省略可能。文字列を配置する文字の位置番号を指定。OverwriteパラメーターがTrueまたは空白の場合、この引数を省略すると、スレッドコメント内の既存のテキストが削除されます。

Overwrite=省略可能。既定値はTrue。False:挿入。True:上書き。

コメントのテキスト(内容)を取得する

B2、D2、C3にスレッド形式のコメントが入っています。

例1)CommentsThreadedコレクション

アクティブシートの1つ目のコメントの内容をメッセージで表示してみます。

Sub test()
  MsgBox ActiveSheet.CommentsThreaded(1).Text
End Sub

例2)CommentThreadedオブジェクト

B2セルのコメントの内容をメッセージで表示してみます。

Sub test()
  MsgBox Range("B2").CommentThreaded.Text
End Sub

例1)、例2)の実行結果

上記の例ではどちらも下図のようにメッセージが表示されます。

全てのコメントの内容を取得するサンプル

アクティブシートの全てのコメントの内容をSheet2に入力してみます。

Sub test()
  'コメントの数用
  Dim cnt As Long
  'ループ用
  Dim i As Long
  'Sheet2用
  Dim ws2 As Worksheet
    
  'Sheet2を変数にセット
  Set ws2 = Worksheets("Sheet2")
    
  'アクティブシートのコメントの数を取得
  cnt = ActiveSheet.CommentsThreaded.Count
    
  With ActiveSheet
    'コメントの数だけループ
    For i = 1 To cnt
      'コメントのセル番地とコメント内容をSheet2に出力
      ws2.Cells(i, 1).Value = _
        .CommentsThreaded(i).Parent.Address(False, False)
      ws2.Cells(i, 2).Value = _
        .CommentsThreaded(i).Text
    Next i
  End With
End Sub

実行すると下図のようにSheet2にコメントの内容が入力されました。

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします