Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5253 / 13644 ツリー ←次へ | 前へ→

【51859】クラスモジュール名をインスタンス作成以外に使用している!? 高瀬 07/10/8(月) 14:01 質問[未読]
【51860】Re:クラスモジュール名をインスタンス作成... りん 07/10/8(月) 14:59 発言[未読]
【51865】Re:クラスモジュール名をインスタンス作成... neptune 07/10/8(月) 19:33 発言[未読]
【51908】Re:クラスモジュール名をインスタンス作成... 高瀬 07/10/10(水) 20:21 お礼[未読]

【51859】クラスモジュール名をインスタンス作成以...
質問  高瀬  - 07/10/8(月) 14:01 -

引用なし
パスワード
   はじめまして。VBAの初心者です。

散々調べたのですが、どこにも記載がなく、質問させていただくことにしました。

よろしくお願いいたします。


<質問内容>-------------------------------------------------------------

例えば、「Class1」という名前のクラスモジュールがあったとすると、インスタンスの作成は「NEW」キーワードを使用し、

Dim XXX As NEW Class1

となると思うのですが、
今私が解読中のコードに「NEW」キーワードを使用せず、

Dim XXX As Class1

というコードがあるのです。
いったいこれはどんな作業内容なのでしょうか?
-------------------------------------------------------------------------

私としては、クラス名をデータ型にしている?と思い、色々検索したのですが、
VBAでヒットするものはありませんでした。

「NEW」キーワードを省略できる?とも考えたのですが、違うみたいです。

ご教示くださいますようお願いいたします。

【51860】Re:クラスモジュール名をインスタンス作...
発言  りん E-MAIL  - 07/10/8(月) 14:59 -

引用なし
パスワード
   高瀬 さん、こんにちわ。

>例えば、「Class1」という名前のクラスモジュールがあったとすると、インスタンスの作成は「NEW」キーワードを使用し、
>
>Dim XXX As NEW Class1
>
>となると思うのですが、
>今私が解読中のコードに「NEW」キーワードを使用せず、
>
>Dim XXX As Class1
>
>というコードがあるのです。
>いったいこれはどんな作業内容なのでしょうか?

よそのサイト(Yahoo知恵袋)にヒントがありました。
htt p://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?queId=9590568
これではないでしょうか。

【51865】Re:クラスモジュール名をインスタンス作...
発言  neptune  - 07/10/8(月) 19:33 -

引用なし
パスワード
   ▼高瀬 さん:
こんにちは
>例えば、「Class1」という名前のクラスモジュールがあったとすると、インスタンスの作成は「NEW」キーワードを使用し、
>
>Dim XXX As NEW Class1
これは宣言後、最初にXXXを参照した際にインスタンスが作成され、その参照が
XXXに代入されます。
EX:
XXX.Property1=hoge
とやった時に、自動的に上記説明の操作が行われます。

>Dim XXX As Class1
XXXはClass1という型を持つ変数である。との宣言です。
set XXX=new Class1
とインスタンスを作成、参照を代入するまで有効にはなりません。

【重要】
>Dim XXX As NEW Class1
では、
set XXX=nothing
としても、そのインスタンスは破棄されません。

その反対に
>Dim XXX As Class1
を使用した場合明示的に
set XXX=nothing
で、破棄されます。これは習慣付けた方が何かと心配が減ります。

【51908】Re:クラスモジュール名をインスタンス作...
お礼  高瀬  - 07/10/10(水) 20:21 -

引用なし
パスワード
   遅くなりましたが、

neptune さん、りんさん ありがとうございました。

勉強になりました。
また調べても分からないことがでてきたときは、ご教示よろしくお願いいたします。

5253 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free