2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【さっさと戻せ】Excel 365-1906 VBA コメントじゃなくてスレコメだメモとひっくり返すなボケが

Last updated at Posted at 2019-09-22

とりあえずExcel2013までのコメントの場所

校閲をクリックしてメモをクリック。コメントと言っているのは偽物です。それはスレコメです。
image.png

スレコメはスレコメ

スレコメ自体がひっくり返されているとか言わないように。スレッド化されたコメントなんだからスレコメでしょうが。

Excel コメントとメモの違い、使い方と特徴

Office365のExcelでコメント機能が
アップデートされました。
これまで「コメント」だった機能が
「メモ」に名称変更され
新たな「コメント」としてスレッド機能が
追加実装されています。

こういうのはユーザーをないがしろにした改悪っていう。言葉に注意したほうがいいわ。ほんとうに思い上がったやつらが多い。セキュリティだかシステム監査が利益を生み出しているわけじゃない。単なる保険程度に過ぎない。その辺の立場が分かっていない連中がどうしてこうも多いのか。しかもこんなの思いっきりシステム改ざんじゃないか。どういうリスク評価をしているんだこの業界は。

https://elleneast.com/?p=12287
このブログによるとOffice 365 solo の場合 Version 1906かららしい。

いらんわさっさと戻せ

試しにマクロを記録してみると

Sub Macro1()
' Macro1 Macro
    Range("BS6").AddComment
    Range("BS6").Comment.Visible = False
    Range("BS6").Comment.Text Text:="テスト"
    Range("BS5").Select **** 1 従来のコメント VBAのオブジェクト名はそのままで表示がメモ
    Range("BS5").AddComment
    Range("BS5").Comment.Visible = False
    Range("BS5").Comment.Text Text:="Crown Milk:" & Chr(10) & ""
    Range("BS6").Select
    Range("BS5").AddCommentThreaded ("ここに書いてみる")
    Range("BW15").Select **** 2 現在のコメント VBACommentThreaded
End Sub

コメントスレッドオブジェクト (Excel)

2019/05/15

セル範囲のスレッド化されたコメントを表します。 このオブジェクトは、各セル範囲ごとのトップレベルのコメントまたは応答の両方を表すことができます。
MSはセルの。。。としているがRangeなのでセル範囲が正しい。

注釈

コメントスレッドオブジェクトは、 CommentsThreaded コレクションのメンバーです。

コメントスレッドオブジェクトを取得するのにには、 Rangeオブジェクトのコメントスレッドプロパティを使用します。 次の使用例は、セル E5 のスレッド化されたコメントのテキストを変更します。

Worksheets(1).Range("E5").CommentThreaded.Text "reviewed on " & Date
この動きはコメントと同じだ。

CommentsThreadedコレクションから単一スレッドコメントを取得するには、 CommentsThreaded (index) を使用します。引数 indexには、スレッド化されたコメント番号を指定します。 次の使用例は、ワークシート1のスレッド化されたコメント2のテキストを更新します。

Worksheets(1).CommentsThreaded(2).Text "reviewed on " & Date

セル範囲にコメントを追加するには、 rangeオブジェクトのaddcomment スレッドメソッドaddcommentthreded Methodを使用します。 次の使用例は、ワークシート1のセル E5 にスレッド化されたコメントを追加します。

Worksheets(1).Range("E5").AddCommentThreaded "Current Sales"

メソッド

AddReply
コメントが最上位レベルのコメントの場合は、返信がCommentThreaded.Replies コレクションに追加されます。
このコメントが返信の場合は、親のCommentThreaded.Replies コレクションに返信が追加されます。

Delete
Next
戻り値
スレコメ
注釈
トップレベル (親) のスレコメで呼び出された場合、次のスレコメを表す最上位の (親) スレコメオブジェクトを返します。 シートの最後のコメントでこのメソッドを使用すると、次のシートのスレコメではなく、Null 値が返されます。
返信スレコメで呼び出した場合は、スレッドの次の返信スレコメを返します。 このメソッドは、1つのスレッドでのみ機能します。 スレコメの最後のでこのメソッドを使用すると、 Null (次の最上位レベルのスレコメではありません) が返されます。
Previous
トップレベル (親) のスレコメで呼び出された場合、前のスレコメを表す最上位の (親)スレコメオブジェクトを返します。 このメソッドをシートの最初のスレコメで使用すると、前のシートの最後のスレコメではなく Null 値が返されます。
返信スレコメオブジェクトで呼び出した場合は、スレコメの前の返信スレコメオブジェクトを返します。 このメソッドは、1つのスレコメでのみ機能します。 スレッドの最初の応答でこのメソッドを使用すると、 Null (最上位レベルのコメントではない) が返されます。
つまり下から上に上がったら、次は隣の一番上に行く。シートの最初まで行くとNullになる。
Text
スレッドコメントテキストを設定します。

構文

text(text、開始、overwrite)

パラメーター
名前 必須 / オプション データ型 説明
Text 省略可能 Variant 追加するテキストを指定します。
Start 省略可能 Variant 文字列を配置する文字の位置番号を指定します。OverwriteパラメーターがTrueまたはblank で、この引数を省略すると、スレッド化されたコメント内の既存のテキストが削除されます。
Overwrite 省略可能 Variant Falseを入力してテキストを挿入します。 既定値はTrueです (テキストは上書きされます)。

つまりテキストを追加したいときはoverwrite をFalseにして入力すると最後の文字が何文字かわからなくても追記できる。
textがなぜかVariantなのも珍しい。StartもLongではない。
しかし、文字の修飾は全くできない

戻り値

String

プロパティ

Application

Creator

AuthorProperty(Excel)

指定されたコメントスレッドオブジェクトの作成者を表すAuthorオブジェクトを返します。 読み取り専用です

CommentThreaded.Date (Excel)

スレッドコメントが現地時刻で追加された日付と時刻を表す日付型 (date) の値を返します。 読み取り専用です。

CommentThreaded.Replies (Excel)

このコメントが親である場合は、指定されたコメントの子または返信であるコメントスレッドオブジェクトのCommentsThreadedコレクションを返します (存在する場合)。 返信は、(ローカルの時間で記録された)タイムスタンプで並べ替えられます。
このコメントが子/返信または従来のコメントの場合は、空のコレクションを返します。

CommentsThreaded コレクションオブジェクト

ワークシート内の最上位のコメントスレッドオブジェクトのコレクション、または1つのスレッド化されたコメント内の返信のコレクション。
ということはReplies Collectionなどと言っているのはやはりCommentsThreadedコレクションオブジェクトになるらしい。

追加するのはRange.AddCommentThreaded なのにコレクションはWorksheet.CommetsThread

つまり追加するときはRangeなのに、追加したとたん、WorkSheetが親になる。

コレクションの名称は単純にSをつけずにCommentsThreaded 中のCommentが複数形となる。非常に珍しい例。

Item

プロパティ

Application
Count
コレクションに含まれるオブジェクトの数を表す長整数型 (Long) の値を返します。
Creator
Parent

コレクション自体には4プロコレクション(4つしかプロパティがないコレクション、Countしか使えない)

VBAで操作できない機能 解決

解決するといったんファイルを保存されて、スレコメは不活性化する。その後復活させることもできる。

デメリットが多すぎて前のコメントに名前を返すべき

Visualをコントロールすることはできない。
形も色も大きさも全くコントロールできないため、コメントを出現させるとシートがその分見えなくなる。
フォントも調節できない。
先に紹介したここを見てほしい。
https://elleneast.com/?p=12287
もはや縦横無尽だ。
わざわざ名前をもとのコメントから奪うとは片腹痛い。スレコメが消えるかさもなければ   を本社にまかれてもおかしくないレベル。
しかしスレコメごときでまた時間を浪費した。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?