A1セルがアクティブな状態で、コメントを挿入する操作を、
マクロ記録すると、以下のようなコードが作られます。
Sub samp()
Range("A1").AddComment
Range("A1").Comment.Visible = False
Range("A1").Comment.Text Text:="コメントのサンプル"
Range("A1").Select
End Sub
どうもモヤモヤ感の残るコードです。
マクロ記録でできるコードのどこにモヤモヤするのか
コメントの挿入に関係ない部分を削除すると、以下のようなコードになります。Range("A1").AddComment
Range("A1").Comment.Text Text:="コメントのサンプル"
End Sub
RangeオブジェクトのAddCommentメソッドで、空っぽのコメントを一旦挿入しておいてから、
Range("A1").AddComment
あらためてCommentオブジェクトのTextメソッドで、コメントの文字列を追加しているコードです。
Range("A1").Comment.Text Text:="コメントのサンプル"
Comment.Textが、プロパティではなくメソッドであることと、
Range("A1").Comment.Text Text:="コメントのサンプル"
Comment.Textというメソッドの名前と、同じ引数名・Textが明示されていることに、
Range("A1").Comment.Text Text:="コメントのサンプル"
私はどうもモヤモヤします。
コメントを挿入するサンプルマクロ
コメントの挿入は以下のような1行のコードで済みます。Range("A1").AddComment "コメントのサンプル"
End Sub
マクロ記録では、引数なしでコードが作られてしまう、RangeオブジェクトAddCommentメソッドですが、コメントとして追加する文字列を引数に指定できます。Comment.Textメソッドを使う必要はありません。
Range.AddCommentメソッドの引数には、上図のとおり「Text」という名前がついていますけれど、メソッド名が「AddComment」で、指定できる引数も1つだけですから、名前付き引数を使う必要もないでしょう。
- Newer:Excel VBAで余白を0にする
- Older:TopLeftCell.Addressとは
Home » Excel VBA Rangeオブジェクト » コメント » コメントの挿入をマクロ記録してできるコードにモヤモヤする