SET関数は代入するときだけに使う?

解決


こころ  2004-11-02 20:04:53  No: 86429

SET関数の使い方がいまいちよくつかめないのですが、
参考書によると例えば、アプリ(エクセルなど)を使うときに
dimでオブジェクト変数を宣言して、SETで「代入」と
なっていますが、SETというのは、アプリを使うときだけに
使用するものなのでしょうか?


raki  URL  2004-11-02 20:43:11  No: 86430

アプリというより、オブジェクトを代入するときに使います。
アプリに限らず、クラスを代入するときや、
逆にオブジェクトを解放するときにも使います。

例1)Excelアプリケーションオブジェクトの参照設定と解除
' 参照設定
Set xlApp = CreateObject("Excel.Application")
' 解放
Set xlApp = Nothing

例2)クラスの新規代入
' 代入
Set clsTest = New TestClass
' 解放
Set clsTest = Nothing


java.lang.Nullpo  2004-11-02 20:53:49  No: 86431

> SET関数の使い方がいまいちよくつかめないのですが、
そもそも「Set」はステートメントですので、関数ではありません。

> SETというのは、アプリを使うときだけに
> 使用するものなのでしょうか?
rakiさんの付けたしになりますが、
VB6以前では、オブジェクト名だけを書いた時に、
デフォルトプロパティを指しているのか、
それともオブジェクトそのものを指しているのかが判らないがために、
Setステートメントが用意されております。
Property プロシージャが、LetとSetに分かれているのもその都合です。

# VB.NETでは廃止されました。(別の「意味」では残っていますが...)


こころ  2004-11-03 09:31:44  No: 86432

rakiさん、java.lang.Nullpoさん、
ありがとうございます。

Setステートメントについて理解しました。
が、前から思っていたのですが、クラスの意味がしっくりきません。
VB歴が浅いとクラスを理解するには難しいのでしょうか?


raki  URL  2004-11-03 11:01:17  No: 86433

VB歴うんぬんではなく、
オブジェクト指向に詳しくないと、完全理解は難しいかもしれません。

ですが、難しいものと捉えて身構える必要はまったくありません。
標準モジュールとの違い、フォームもクラスである、など簡単なことから
一つずつ覚えていけば、自然と身につきますよ。

まずは調べてみることから始めてみては?
また、下手に分厚い参考書を読むより、多くのサンプルソースなどを見て、
こういう使い方をするんだ、こういうことがクラスだとできるんだ、
逆に標準モジュールはこういうことができるんだとか、
何でこういう記述の仕方をするの?と疑問を持ち、
それを調べていくほうがより早く覚えれかもしれません。

何はともあれ、どんな難しいことでも、
一つずつ手順を踏めば、覚えられないことはありません。
頑張って下さい。


こころ  2004-11-03 20:32:06  No: 86434

>rakiさん

そのとおりですね。
いろいろと調べて、がんばってみます!
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加