Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Excel VBA】EmptyとNothingの違いや利用方法について

VBAで空、空欄、存在しないや変数の初期値などの時に登場するものに、Empty、Nothigがあります。

 

違いがわかりにくいこともあり、これらについて備忘録として残しておきたいと思います。

 

 

 

目次

 

 

1.Empty

 

セルが空白、空欄の時やVariant型の変数の初期値として使われるのがEmptyです。

 

VBAで型指定せずに変数を使用した場合にはVariant型となるためこの場合の初期値はEmptyとなります。

 

Emptyかどうかを判断する場合には、以下のようにIsEmpty()関数を使用するか""と比較するかします。

 

簡単な例としては、

 

    str = Cells(3,3)
    If (str = "") Then
       MsgBox ("セルは空です") Else
       MsgBox ("セルは入力済です")" End If

 

または、

 

    str = Cells(1,1)
    If (IsEmpty(str) = True) Then
        Debug.Print "セルは空です"
    Else
        Debug.Print "セルは入力済です"
    End If

 

となります。

 

 

2.Nothing

 

NothingはObject型の変数の初期値です。

 

Object型の変数には種々のクラスのインスタンスがはいります。

 

クラスは変数などの型を定義したものを差し、インスタンスはその実体として値を入れたものです。

 

使用例としてはたとえば以下のようになります。

 

この例ではExcelを起動後Quitで終了し、最後にObject型変数にNothingを入れることで参照を解放しています。

 

Dim xlObj As Object
Set xlObj = CreateObject("excel.application")
xlObj.Visible = True
xlObj.Quit
Set xlObj = Nothing

 

NothingはObject型変数の初期値や参照の解放に用いられます。

 

また、Object型変数がNothingかどうかを判定する場合には、以下のように

「obj Is Nothing」

などと記載します。

 

If (obj Is Nothing) Then
    処理記載
End If

 

以上が、空や空欄、存在がない場合などに使われるEmptyとNothingの簡単な説明になります。