質問: ### Isの使い方を教えていただきたいです ある参考書でVBAの勉強を始めた初心者です。 Isはどのようなときに使うのか、どのように使うものなのか教えていただきたいです。 参考書のコードでIf~Then~Elseの条件式のなかに、Isが出てきました。 (If A Is Nothing Then) あまりに基本的なことなのか、その参考書の解説に詳しく載っていません。オブジェクトの比較に使う比較演算子とだけ載っています。 「こういうときに使って、こういうときにはこれは使わないよ。なぜなら〜」などと答えていただけると、ありがたいです。 初質問です。 よろしくお願いいたします。
回答: VBAにおける「オブジェクト」は理解していますでしょうか。 わかっている前提で回答しますが、 Is 演算子は、「オブジェクト同士の比較」で使う演算子です。 例えば数値型の変数 lngA と lngB があった場合、この比較をする場合は `If lngA = lngB Then` であることは理解できるでしょうか。 この = の左右がオブジェクト型のものである場合、 = の代わりに Is が利用されます。 `If A Is Nothing Then` ここでいう変数 A がオブジェクトである場合、ということです。 ※なお、Nothing は「空」を示す特別なオブジェクトです。 追記 === > > 以下を読むと多分とても混乱するので先に回答らしきものを書いておきます。 > > Is を使う機会は変数を Nothing と比較する場合がほとんどです。 > > また、おそらく当面は理解は後回しでいい箇所、だと思います。 > > > そのうえで少し大雑把な説明です。 * 変数 * データ型 * (データ型の内の)オブジェクト型 という言葉の理解がキーとなります。 以下の説明では不足だと思いますので、そのあたりをキーワードに調べてみてください。 変数 VBAに限らずプログラム言語では、処理を汎用化するために「変数」というものを利用します。 簡単な理解のためにこれは数学で出てきた x とか y と同じようなもので、何かが入る箱、くらいの意味で考えてください。 箱の中身は様々なデータです。 データ型 数学の場合、この変数には常に数値が入りましたが、プログラム言語の場合は文字列が入ったり日付が入ったり、様々なものがデータとして格納されます。 この、中身にどういったものが入っているか、というのが「データ型」です。 例えばVBAで Dim strA As String というように変数を宣言する、ということをするのですが、これは、 strA という変数をこれから使います。 strA には文字列(String)が入ります。 という宣言になります。 オブジェクト型 データ型には文字列のほかに、整数(Integer や Long)、小数も含んだ数値(SingleやDouble)、日付・日時などの他に「オブジェクト型」があります。 オブジェクト型というのは、それ以外のデータ型が1つのデータしか格納できないのに対して、関連性の強い複数のデータを1つのデータの塊として扱えるものです。 VBAの場合、例えばExcelの「ワークシート」や「セル」はオブジェクトとして扱われます。 例えば、 ・セルの値 ・セルの背景色 等「セル」というものに対して様々なデータがありますよね。 これらをまとめて「セル」という1つのオブジェクトとして扱います。 このように「モノ」を管理の単位として考え、そのものに付随する複数のデータを1つにまとめて扱うものが「オブジェクト」です。 参考 === あたりが参考になるかもしれません。