Home » ExcelVBA Rangeオブジェクト » コメント » コメントの挿入をマクロ記録してできるコードにモヤモヤする

コメントの挿入をマクロ記録してできるコードにモヤモヤする

対象:Excel2010, Excel2013, Windows版Excel2016

A1セルがアクティブな状態で、コメントを挿入する操作を、

コメントの挿入をマクロ記録してできるコードにモヤモヤする

マクロ記録すると、以下のようなコードが作られます。

Sub samp()
 Range("A1").AddComment
 Range("A1").Comment.Visible = False
 Range("A1").Comment.Text Text:="コメントのサンプル"
 Range("A1").Select
End Sub

どうもモヤモヤ感の残るコードです。

[スポンサードリンク]

マクロ記録でできるコードのどこにモヤモヤするのか

コメントの挿入に関係ない部分を削除すると、以下のようなコードになります。
Sub samp()
 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行のコードで済みます。
Sub コメントを挿入する()
 Range("A1").AddComment "コメントのサンプル"
End Sub

マクロ記録では、引数なしでコードが作られてしまう、RangeオブジェクトAddCommentメソッドですが、コメントとして追加する文字列を引数に指定できます。Comment.Textメソッドを使う必要はありません。

コメントの挿入をマクロ記録してできるコードにモヤモヤする

Range.AddCommentメソッドの引数には、上図のとおり「Text」という名前がついていますけれど、メソッド名が「AddComment」で、指定できる引数も1つだけですから、名前付き引数を使う必要もないでしょう。

関連語句
VBA, Visual Basic for Applications

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » コメント » コメントの挿入をマクロ記録してできるコードにモヤモヤする

Copyright © インストラクターのネタ帳 All Rights Reserved.

.