質問: お世話になっております。 Filesystemobjectについて色々と調べているのですが、分からない点があります。 例えば、 ``` Dim fso as new Filesystemobject ``` と、 ``` Dim fso as Filesystemobject ``` の具体的な違いを知りたいです。 ちなみに、どちらも**参照設定はちゃんとしている**ものとします。 そしてプログラムによっては、「New」がついているもの(上記コード)だとエラーが出たり、また、「New」がないコード(下記コード)だとエラーが出たりするものがあります。 特にNewがないときにエラーが出る場合があるのですが、この時のエラーは ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/d42d1eb4164a06c31d887195e9ad24a2.png) こういうエラーになります。 念のため、このエラーが出る時の具体的なコードも載せておきます。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/f4c44cb320fd2a6c345f5320e9ec24bc.png) ですが、**参照設定で「Microsoft Scripting Runtime」にチェックは入れてあります**。 なので、具体的にどういう時にNewが必要でどういう時にNewが必要じゃないのかを知りたいです。 よろしくお願いいたします。
回答: 宣言の仕方は他の回答を参照していただくとして(たぶんそういうことを聞きたいわけじゃないと思うので)私からは一般的な話を。 オブジェクト(他の言語だとクラスなどと同意語)は`インスタンス化`して初めて使えるようになります。 インスタンス化というのは、実体を用意することです。 インスタンス化をしないと空っぽの枠があるだけの状態です。 ちょうどクラスという単語が出たので、それをいわゆる学校の教室に例えて説明してみます。 インスタンス化していない状態はだたの空っぽの教室です。 生徒がいないので名前を呼んでも返事はありません。 インタンス化することで生徒が入って呼べば返事があるようになります。 こんなイメージで伝わりますでしょうか。 で、オブジェクトとそうでないものの見分け方は、値だけなのか(ただの変数)、処理も含んでいるのか(オブジェクト)になります。 あとはここに出てきたキーワードでググってみてください。