Excel VBAでスレッド形式のコメントのテキスト(内容)を変更する記録です。
コメントのテキストを取得、変更するには、「CommentThreaded」オブジェクトの「Text」メソッドを使います。
「Text」メソッド構文
スレッドコメントのテキストを設定します。
CommentThreadedオブジェクト.Text (Text, Start, Overwrite)
Text=省略可能。追加する文字を指定。
Start=省略可能。文字列を配置する文字の位置番号を指定。OverwriteパラメーターがTrueまたは空白の場合、この引数を省略すると、スレッドコメント内の既存のテキストが削除されます。
Overwrite=省略可能。既定値はTrue。False:挿入。True:上書き。
コメントのテキスト(内容)を変更する
コメントの内容を全て変更する
コメントの内容を全て入れ替える場合は、「Start」「Overwrite」「Text」は省略してもOKです。
次のように書き込んでみます。
Sub test()
Range("B2").CommentThreaded.Text Text:="コメント入替"
End Sub
コメントの内容の頭に文字を追加する
コメントの最初に文字を追加したい場合は、「Overwrite」をFalseにします。
この場合「Text:=」も書かないと動作しません。
Sub test()
Range("B2").CommentThreaded.Text Text:="最初", Overwrite:=False
End Sub
コメントの内容の中間に文字を追加する
コメントの最後に文字を追加したい場合は、「Start」を数値で指定し、「Overwrite」をFalseにします。
元のコメントの3文字目から文字を追加する場合は次のように書きます。
Sub test()
Range("B2").CommentThreaded.Text Text:="3文字目", Start:=3, Overwrite:=False
End Sub
コメントの内容の最後に文字を追加する
コメントの文字の間に追加したい場合は、コメントの文字数を数えて「Start」に数値で指定し、「Overwrite」をFalseにします。
Sub test()
Dim txt_cnt As Long
txt_cnt = Len(Range("B2").CommentThreaded.Text) + 1
Range("B2").CommentThreaded.Text Text:="最後", Start:=txt_cnt, Overwrite:=False
End Sub
こんな記事も書いています