投稿者 るきお  (社会人) 投稿日時 2009/2/16 21:46:14
こんにちは。
VistaとXPとで反応が異なるという話は私は効いたことがないです。

まだ情報が足りないです。
特にVistaとXPでの違いを確認するためにはどのような手順で操作すればよいでしょうか?
再現可能なコードと手順の両方があれば手がかりになります。

たとえば、以下のコードでも再現しますか?
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
      
        Dim table As New Data.DataTable

        table.Columns.Add("名前"GetType(String))
        table.Columns.Add("英語"GetType(Integer))
        table.Columns.Add("国語"GetType(Integer))
        table.Columns.Add("数学"GetType(Integer))
        table.Columns.Add("備考"GetType(String))

        table.Rows.Add("徳川家康", 90, 85, 65, "aaa")
        table.Rows.Add("豊臣秀吉", 55, 85, 70, "")
        table.Rows.Add("織田信長", 82, 90, 85, "")
        table.Rows.Add("松永久秀", 80, 80, 80, "")

        DataGridView1.DataSource = table

    End Sub

    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click

        If Me.DataGridView1.CurrentCell.Value = Nothing Then
            MsgBox("Nothingです。")
        Else
            MsgBox("Nothingではないです。")
        End If

    End Sub


このコードを実行すると1行目の5列目をクリックしてから、Button1をクリックすると「Nothingではないです」、2行目の5列目をクリックしてから、Button1をクリックすると「Nothingです」と表示されますか?

それから、 = Nothing という記述は一般的ではありませんし、紛らわしい場合があるので辞めておいた方が良いです。
fredeeさんのコードでは意味的には = "" がふさわしいと思います。
Nothingは意味的には "" と異なっており、 = Nothingと記述した場合の動作はNothingの意味から考えるとやや特殊なのでこのように記述しないことが多いです。