| 
    
     |  | Selectionが複数範囲のセル群を参照している場合の対応方法ですね? 
 簡単な方法としては、Selectionから一つ一つのセルを取り出して、
 各々に対して判定、セットしてやるように変更すればいいでしょう。
 各々のセルを見ていくようにするのはFor Eachループで行います。
 
 提示のコードをちょこっと変更するとすれば、
 Private Sub CommandButton1_Click()
 Dim s1 As String, s2 As Variant
 Dim c As Range
 
 s1 = Me.TextBox1.Text & vbCrLf & _
 Me.TextBox2.Text & vbCrLf & _
 Me.TextBox3.Text
 s2 = Me.TextBox4.Value
 
 For Each c In Selection
 With c
 If .Interior.Pattern = xlGray8 Then
 .ClearComments          'コメントのクリア
 .AddComment(s1).Visible = False  'コメントの非表示
 .Value = s2
 End If
 End With
 Next
 
 End Sub
 と言った感じでしょうか。
 
 
 注)
 このコードは、CommandButton1やTextBox1〜4が配置されている
 UserForm3のフォームモジュールのコードであると解釈しました。
 
 
 |  |