• 締切済み

クラスモジュールについて

はじめまして。 クラスモジュールと標準モジュールの大きな違いは何なんでしょうか?基本的な質問で申し訳ありません。どなたか教えてください。 ma-ki

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.4

乱暴な言い方をすれば、「オブジェクトとして使用するモジュール」ってことになるのかな? 例えば、標準モジュールから、Formオブジェクトを呼び出して、プロパティやメソッドを操作しますよね? それと同じように、標準モジュールからクラスモジュールを呼び出して、(クラスモジュールに実装されている)プロパティやメソッドを操作するわけです。 使いこなすにはちょっとコツが要りますが、再利用性の高いクラスモジュールを作成すればアプリケーションの開発効率が大幅にアップします。 (ただし「何でもクラス主義(=クラス猿)」に陥らないように注意。標準モジュールとうまく使い分けることが重要です。) 月並みな回答ですが、実際に使ってみれば何となく理解できると思います。 '**** Hello.cls (クラスモジュール,オブジェクト名:Hello) ****** Option Explicit Dim mTarget As String Property Let Target(Target_ As String)  'プロパティの実装  mTarget = Target_ End Property Property Get Target() As String  Target = mTarget End Property Public Sub SayHello()  'メソッドの実装  MsgBox "Hello " & mTarget & "!!" End Sub '*********** ここまで ************ '****フォームにボタン(Command1)を貼っ付けて…****** Private Sub Command1_Click()  Dim Hello1 As New Hello  Dim Hello2 As New Hello    Hello1.Target = "World"  Hello2.Target = "Everyone"    Hello1.SayHello  Hello2.SayHello End Sub '****ここまで****

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.3

まず、拡張子の違い 標準モジュール(*.bas)、クラスモジュール(*.bas) 次に、呼び出し方法の違い 標準モジュールではPublic変数やプロシージャの名称を記述するだけでしたが、クラスモジュールでは、 クラス名.プロシージャ(変数/プロパティ) としなければなりません。 さらに、標準モジュールは同一プロジェクトからしか呼び出せませんでしたが、クラスモジュールは、ActiveX DLL/EXEとして、つまり、1つのオブジェクトとして、プロジェクトの外から呼び出すことができるという、大きな特徴があります。

  • y_an
  • ベストアンサー率57% (24/42)
回答No.2

詳しくは正しいか分かりませんが自分はこのように認識しています。 クラスのメリット 1)DLLを作成したときにインターフェイスとなる。 2)オブジェクト化できる。   例えばclsTestというクラスファイルを作成し、   そのメンバとしてValueという変数を持っている時、   Dim CLS1 As clsTest   Dim CLS2 As clsTest   Set CLS1 = New clsTest   Set CLS2 = New clsTest   CLS1.Value = "Test1"   CLS2.Value = "Test2"   という感じでオブジェクトとして   同じ変数でも別物として保持できる。   見た目のないコントロールのような感じです。   またValueという変数をプロパティとして持てば、   取得のみ可能とか設定のみ可能という風にもできます。 自分の知っているのは以上です。 参考になれば幸いです。

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.1

VBのバージョンは? ヘルプにそのまんまの項目があります。 『クラス モジュールと標準モジュール』を読んでみて下さい。

関連するQ&A