-PR-
締切済み

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

  • すぐに回答を!
  • 質問No.87186
  • 閲覧数121
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 56% (9/16)

はじめまして。

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

ma-ki
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル13

ベストアンサー率 33% (427/1283)

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

ヘルプにそのまんまの項目があります。

『クラス モジュールと標準モジュール』を読んでみて下さい。
関連するQ&A


  • 回答No.2
レベル9

ベストアンサー率 57% (24/42)

詳しくは正しいか分かりませんが自分はこのように認識しています。 クラスのメリット 1)DLLを作成したときにインターフェイスとなる。 2)オブジェクト化できる。   例えばclsTestというクラスファイルを作成し、   そのメンバとしてValueという変数を持っている時、   Dim CLS1 As clsTest   Dim CLS2 As clsTest   Set CLS1 = ...続きを読む
詳しくは正しいか分かりませんが自分はこのように認識しています。

クラスのメリット
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という変数をプロパティとして持てば、
  取得のみ可能とか設定のみ可能という風にもできます。

自分の知っているのは以上です。
参考になれば幸いです。
  • 回答No.3
レベル11

ベストアンサー率 50% (173/345)

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

次に、呼び出し方法の違い
標準モジュールではPublic変数やプロシージャの名称を記述するだけでしたが、クラスモジュールでは、
クラス名.プロシージャ(変数/プロパティ)
としなければなりません。

さらに、標準モジュールは同一プロジェクトからしか呼び出せませんでしたが、クラスモジュールは、ActiveX DLL/EXEとして、つまり、1つのオブジェクトとして、プロジェクトの外から呼び出すことができるという、大きな特徴があります。
  • 回答No.4
レベル13

ベストアンサー率 46% (643/1383)

乱暴な言い方をすれば、「オブジェクトとして使用するモジュール」ってことになるのかな? 例えば、標準モジュールから、Formオブジェクトを呼び出して、プロパティやメソッドを操作しますよね? それと同じように、標準モジュールからクラスモジュールを呼び出して、(クラスモジュールに実装されている)プロパティやメソッドを操作するわけです。 使いこなすにはちょっとコツが要りますが、再利用性の高いクラスモ ...続きを読む
乱暴な言い方をすれば、「オブジェクトとして使用するモジュール」ってことになるのかな?

例えば、標準モジュールから、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
'****ここまで****
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ