プロが教えるわが家の防犯対策術!

VBAでコメントにセルの値や変数の値を設定する処理はあるのですか?
よろしくお願いします。

A 回答 (6件)

1つ書き忘れました。

(余計なことかもしれませんが)

#3さんの方法では、C3セルに値が入っていなかったり、数字が入っている場合、
Range("A3").Comment.Text Text:=Cells(3, "c").Value
でエラーになります。

Range("A3").Comment.Text Text:=cstr(Cells(3, "c").Value)
とするか
#4さんのように一旦文字列変数に格納するか
私の様に.Valueでなく.Textを使うかしないとだめだと思います。
(絶対文字が入っていれば、気にすることもないかもしれませんが)
EXCEL2000なので、それ以降のバージョンではうまくいくのかな?
確認してみてください。
    • good
    • 0

私もサンプルです。


コメントがあるかないかを判断しています。

Sub Macro1()
  Dim Msg As String
  Msg = "TEST"
  With Worksheets("Sheet1").Range("A2")
    If (.Comment Is Nothing) Then 'コメントがない場合
      .AddComment Worksheets("Sheet1").Range("B2").Text 'B2セルの値を入れる
    Else
      .Comment.Text Msg '変数を入れる
    End If
  End With
End Sub
    • good
    • 0

こちらもサンプルです。

セルA1の値を B1に「セルのコメント」として設定させています。

Sub Macro1()
Dim Mytext As String
Mytext = Range("A1").Value

Range("B1").Select
Range("B1").AddComment Text:=Mytext
End Sub
    • good
    • 0

C3セルに、例えば「東京管轄」と入れて下記を実行すると


A3のコメントに「東京管轄」と入りましたが。
Cells(3, "c").ValueとValueが必要のようです。
Sub test01()
Range("A3").AddComment
Range("A3").Comment.Visible = False
Range("A3").Comment.Text _
Text:=Cells(3, "c").Value
End Sub
#1のご回答のような問題でしょうか。それならごめんなさい。
    • good
    • 0

サンプル


コメントがそのセルに既にある場合
Sheets("Sheet1").Range("A1").Comment.Text " commented at " & Format(Time, "hh:mm:ss")
コメントが無い場合
Sheets("Sheet1").Range("A1").AddComment " commented at " & Format(Time, "hh:mm:ss")
    • good
    • 0

コメントというのは



「'」

で始まる一行のことでしょうか。その行内はすべてコメントアウトされるので、その行内に何を書いても実行はされないと思います。

' 変数宣言しまーす! Dim i as Integer どうですか?

とか

' iに値を格納しますよー! i = 1 どうだ!

と書いても、そのInteger大のメモリ領域確保は行われませんし当然思うところの「1」という値もどこにも保持されません。

そして、そのようなことをする必要もないのではないのでしょうか。

' 変数宣言
Dim i as Integer
' 値格納
i = 1

これが普通のやり方です。コードがどれほど複雑になっても、コメント行はコメント行として使うしかないと思います。

間違っていたら誰か正してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています