EXCEL VBA セルにコメントを追加する・コメントの削除・編集 (AddCommentメソッド)

 

 

 

EXCEL VBA セルにコメントを追加する・コメントの削除・編集 (AddCommentメソッド)

 

 

 

 ●はじめに

今回説明するのは、AddCommentメゾットの利用方法を説明いたします。セルに注意書きや詳細情報を記載する時に、コメントを追加します。VBAのAddCommentメゾットでコメントを追加する事により、ある条件でコメントを追加したり、データを追加した際にコメントを残すなどを自動的に行う事ができます。それでは、サンプルプログラムを交えて順番に説明いたします。

 

●【Range.AddComment メソッドについては、下記を参照して下さい】:参考(Microsoft社 様)
https://docs.microsoft.com/ja-jp/office/vba/api/excel.range.addcomment

 

 

 

 ●書式の説明 (AddCommentメソッド): コメントの追加

● AddCommentメゾットを利用するには、下記の通りに設定を行います。

 

オブジェクト.AddComment(Text)

Text・・・コメントを残す文字列を指定します。

 

【使用例①】:セルA1にコメントを追加します・

Range(“A1”).AddComment “セルA1です。”

 

 

 

 

【使用例②】:セルA1に日付と文字列(更新日)をコメントで追加します。
      【 vbCrLf 】で改行

Range(“A1”).AddComment Date & vbCrLf & “更新日”

 

 

 

 

 

【注意点】

既にAddCommentメゾットでコメントを追加しているセルに対して、更にAddCommentメゾットでコメントを追加するとエラーが発生します。【 On Error Resume Next 】 でエラー回避するなど、エラー処理コードを記述する必要があります。又は、コメントを追加する前に、消してからコメントを追加する方法でも大丈夫です。

① On Error Resume Next ’・・・エラーを回避
② Range(“A1:D10”).ClearComments  ‘コメントを削除(範囲指定)
③ cells.ClearComments  ‘コメントを削除(シート全てのコメントを削除)

 

 

 

EXCEL VBA データの記入漏れに、コメントを追加する・登録漏れを指摘(AddCommentメソッド)

 

 

 ●プログラム説明 (サンプル①)

下記のサンプルプログラムは、データに登録漏れが有る場合に、空白(何も入力されていない)の場合、コメントを自動的に追加して入力漏れを指摘するサンプルプログラムです。

 

【プログラムの流れ】
① 入力漏れをチェックするセルを範囲指定します(セル:A1~F8)
② エラー発生を無視する。(AddCommentメゾットは、コメントを追加したセルに、更に追加するとエラーが発生するので)
③ 指定したセル範囲(A1:F8)を順番に繰り返します。
④ 未入力のセルを判定します。
⑤ 未入力のセルが発見された場合は、該当セルに未入力の内容をコメントします。
(セルD4:で発生したので、D列は【生年月日】なので、コメントには、【生年月日が未入力です】と表示されます。)
⑥ 指定したセル全てをチェックするまで繰り返します。④へ

 

 

 

 ●実行前~実行後 ※プログラム実行後、表データのセルD4にデータが登録されていないので、セルD4にコメントが表示されました。今回は、1カ所でしたが、指定した範囲内なら入力漏れが有れば複数個所コメントで表示されます。
(画面クリックして拡大)

 

 

 

 

EXCEL VBA 指定した条件に該当するセルに、コメントを追加する(AddCommentメソッド)

 

 

 

 ●プログラム説明 (サンプル②)

下記のサンプルプログラムは、指定した条件に該当するセルに、コメントを追加するサンプルプログラムです。下表の集計表にデータが記入されているが、マイナスデータが登録されているセルに指摘事項としてコメントを追加します。追加するコメント内容は、【〇月-〇〇支店名 マイナス計上です。】

 

 

【プログラムの流れ】

① A1セルを元に表のセル範囲を把握します。
② 表の選択範囲を元に既に、コメントが有れば削除します。
③ 表の選択範囲を元に、セルを順番に調べます。
④ セルに0未満のデータが登録されているか確認します。
⑤ セルに0未満(マイナス計上のセル)のデータが登録されている場合は、コメントを追加します。
⑥ 表の選択範囲のセル全てを繰り返します。③へ

 

 

 

 

 

 

 

●実行前~実行後 ※ プログラム実行後、表のマイナス計上のセルにコメントが追加されました。今回のプログラムでは、プログラム実行後、最初に表の全コメントを削除して、コメント追加するようにプログラムを作成しております。
(画面クリックして拡大)

 

 

 

 

EXCEL VBA データを変更したセルにコメントを追加する。変更履歴の追加【変更日時・ユーザー名記入】(AddCommentメソッド)

 

 

 ●プログラム説明 (サンプル③)

下記のサンプルプログラムは、セルに入力したデータを変更した場合に、そのセルにコメントを追加するサンプルプログラムです。コメントを追加した際に、誰が変更したか分かるように、コメントに変更日時とユーザー名が追加されます。(履歴管理)

 

【プログラムの流れ】

① 表の範囲を把握します。
② セルの変更が無いか判定します。
③ 判定結果で変更がない・・・・なにもしない。
④ 判定結果で変更した場合・・・変更した位置を把握します。⇒ 前のコメント削除します。 ⇒ 改めてコメントを追加します。

 

【プログラム実行条件】

※ 下記のプログラムは、ワークシートに対するイベントプロシージャにプログラムを記述します。

【ワークシート1(Sheet1)に記述します。】

 

 

 

 

 

下記のサンプルプログラムは、セルにデータを変更した場合に、そのセルにコメントを追加するサンプルプログラムです。コメントを追加した際に、誰が変更したか分かるように、コメントに変更日時とユーザー名が追加され履歴管理する事ができました。
(画面クリックして拡大)

 

 

 

 

EXCEL VBA 入力データを変更したセルにコメントを追加する。コメントも追記する【変更日時・ユーザー名記入】(AddCommentメソッド)・(コメントが追加されているか判定)

 

 

 ●プログラム説明 (サンプル④)

下記のサンプルプログラムは、サンプルプログラム③の応用になります。サンプルプログラムでは、入力データが変更したセルにコメントを追加するサンプルプログラムですが、コメントに変更履歴が残るようにプログラムの一部を変更いたしました。履歴が残る事で誰がいつ変更したか、コメントを参照する事で履歴管理する事が出来ます。

 

【プログラムの流れ】

① 表の範囲を把握します。
② セルの変更が無いか判定します。
③ 判定結果で変更がない・・・・なにもしない。
④ 判定結果で変更した場合・・・変更した位置を把握します。
⑤ 変更したセルに、コメントが追加されているか?
「コメントが追加されいない場合」・・・新規追加:更新日時とユーザー名を追加します。
⇒コメントサイズの自動調整
「既にコメントが入力されている場合」・・既に登録されているコメントを一時保存します。
⇒既存のコメントを削除します。
⇒一時保存したコメント(履歴)と今回登録するコメント:更新日時とユーザー名を一緒にコメント追加します。
⇒コメントサイズの自動調整

 

【プログラム実行条件】

※ 下記のプログラムは、ワークシートに対するイベントプロシージャにプログラムを記述します。

【ワークシート1(Sheet1)に記述します。】

 

 

 

 

 ●実行前~実行後 ※ワークシート1の表の内容を修正しますと、既に変更履歴が登録されているコメントは、更に更新日時・ユーザー名がコメント追記されます。コメントの無いセルで変更した場合は、新規にコメントが追加されまます。なお、履歴が増えてもコメントを見やすくするために、コメントサイズの自動調整を行います。
(画面クリックして拡大)

 

 

 

 

EXCEL VBA コメント内容を取得して別シードへ一覧表示させる。(AddCommentメソッド)

 

 

 ●プログラム説明 (サンプル⑤)

下記のサンプルプログラムは、ワークシート上のコメントを別シートへコメントを一覧表示させるサンプルプログラムです。ワークシート「コメント」には、コメントが部分的に追加されています。このコメントを別シート「一覧」のA列には、コメントの「セル番号」・B列には内容を転記します。

【プログラムの流れ】
① ワークシート「コメント」の表範囲を把握します。(セル「A1」を基準に範囲取得します)
② 転記先の開始行を指定します。(2行目から)
③ 指定したセル範囲を順番に調べます。
④ セルにコメントがあるか調べます。
「コメントが有る場合」・・・別シート「一覧」のA列にセル番号・B列にコメントを転記します。
「コメントが無い場合」・・・何もしない。

【プログラム実行条件】
・ワークシート「コメント」を作成して、表とコメントを追加します。
・ワークシート「一覧」を作成してします。

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、シート「コメント」内のコメントを別シート「一覧」へコメントが登録されているセル番号とコメント内容が転記されました。
(画面クリックして拡大)

 

 

EXCEL VBA コメントに画像・写真を挿入する。(AddCommentメソッド)

 

 

 

 ●プログラム説明 (サンプル⑥)

下記のサンプルプログラムは、セルのコメントに画像を挿入するサンプルプログラムです。コメント(文字列)では、表現できない場合などに画像を挿入して、表示させる事でユーザーに伝える事ができます。

● 例)コメントに画像を挿入します。下記のサンプルプログラムは

【下記のプログラムの流れ】

① コメントを挿入するセルを(C3)にセットする。
② コメントをクリアー(削除)します。
③ セル(C3)に「あじさい」の文字列を挿入します。
④ コメントを追加する。
⑤ 指定した画像をコメントに挿入します。(C:\PIC\花1.png)より画像データを読み込みます。
⑥ コメントを表示します。

 

【プログラム実行条件】

・Cドライブ直下にフォルダーを作成して画像ファイルを用意します。
【 C:\PIC\花1.png 】

 

 

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、セル「C3」に「あじさい」の文字列とコメントとして「画像:あじさい」が挿入されました。
(画面クリックして拡大)

 

EXCEL VBA コメントの削除・部分削除・一括削除(AddCommentメソッド)

 

 

 ●プログラム説明 (サンプル⑧)

下記のサンプルプログラムは、コメントの削除を行う2種類のサンプルプログラムです。1つ目は、選択範囲内のコメントを削除するサンプルプログラムで、2つ目は、シート全体を削除するサンプルプログラムです。

【下記のサンプルプログラムは、3パターンのコメントの削除方法です】

① 指定したセル範囲のコメントを削除
② 指定した表範囲内のコメントを削除
③ シート内の全てのコメントを削除

詳細内容(プログラム)についは、下記プログラムを参照して下さい。

 

 

 

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。