セルのコメント機能は便利です。
ですがあくまでも一時的に使うものでしょう。
例えば、Excelで何らかのデータベースを作成しているようなときに、コメントを大量に使ってしまう方がいらっしゃいます。
そのような場合、コメントを多用するより、何らかのフィールドを作成してセルに文字列を入力しておくほうが、後々の使い勝手はいいはずです。
そんなコメントの多用状態を解消するために、コメントに入力されている文字列をセルに移動するといった作業が実務で発生することがあります。
コメントの量が少なければ手作業でおこなっても構いませんが、大量のコメントが挿入されているときに、コメントに入力されている文字列を手作業でセルに移動するのは、かなりの手間です。
そんなときは、VBA(Visual Basic for Applications)で作成したユーザー定義関数と、値の貼り付けを利用してコメントに入力された文字列をセルに移動してはいかがでしょう。
Function CellCommentText(objCell As Range) As String
Application.Volatile
If objCell.Comment Is Nothing Then
CellCommentText = ""
Else
CellCommentText = objCell.Comment.Text
End If
実際にコメント内容を表示するのは、
If objCell.Comment Is Nothing Then
CellCommentText = ""
Else
CellCommentText = objCell.Comment.Text
End If
の部分です。
引数に指定されたセルにコメントがなければ空白文字列を返し、
If objCell.Comment Is Nothing Then
CellCommentText = ""
コメントが存在しているときにはコメントのテキストを取得して返します。
Else
CellCommentText = objCell.Comment.Text
この実際の処理を行うIF文の部分だけだと、コメントが変更されても、CellCommentText関数でセルに表示したコメント内容が変更されない状態になってしまいます。
それを回避するために、
Application.Volatile
を入れてあります。
Volatile関数にすることで、コメントを変更しても[F9]キーや[Shift]+[F9]キーなどで再計算をすれば、CellCommentText関数を利用しているセルの値が変更されます。
▼サンプルファイル(003594.xls 46KByte)ダウンロード
サンプルファイルには、上記のユーザー定義関数CellCommentTextを作成し、ワークシート上ではCellCommentText関数でコメントの内容をセルに表示させてあります。
コメントの多用されているExcelファイルの整理に苦労した経験のある方は、一度ご確認ください。
- Newer:変更履歴の色を変更する−校閲タブ-変更履歴オプション
- Older:PowerPoint2007の禁則処理設定
Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » コメントの内容を取得する