私も注釈=コメントのことと思いましたので、これでアドバイスさせていただきます。
Excelにはコメントを一括で表示/非表示する機能があります。
シート上の操作では「校閲」タブの「全てのコメントの表示」ボタンで切り替えられます。
これをググったりマクロの記録をすればわかりますが、VBAのコードでは
Application.DisplayCommentIndicator
というプロパティで制御できます。
コメント一括ON
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
コメント一括OFF
Application.DisplayCommentIndicator = xlCommentAndIndicator
今回はボタンを押すたびにこれを切り替えたいのだと思います。
こういったスイッチングは、IF文を使えば簡単にできます。
・もしAが①なら、Aに②を代入する。
・それ以外なら(Aが①でなければ)、Aに①を代入する。
今回の場合でいうと、
・コメント一括ONの状態なら、コメント一括OFFにする。
・それ以外の場合は、コメント一括ONにする。
となります。
あとはこれをVBA上でコードにするだけです。
がんばってみてください。
コメントひとつひとつに対して表示/非表示する場合には、segavvyさんのアドバイスのようにRange
オブジェクトのComment.Visible
プロパティで制御できます。
ちなみにRange
オブジェクトはセル範囲を指定することができるオブジェクトですが、このプロパティは複数セルをまとめて操作できません。
単一セルを指定したRange
オブジェクトでないとエラーが発生しますのでご注意ください。
※segavvyさんのサンプルコードではループ処理で単一セルを繰り返し取得しているので問題ありません。
Visible
プロパティのようなBoolean型(True/False)の値はスイッチングが簡単です。
もしAがTrueならFalse、FalseならTrueにするという式は、IF文を使わなくても
A = Not A
という代入式で実現できるからです。
参考になれば幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。