
A 回答 (4件)
- 最新から表示
- 回答順に表示
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
'****ここまで****
No.3
- 回答日時:
まず、拡張子の違い
標準モジュール(*.bas)、クラスモジュール(*.bas)
次に、呼び出し方法の違い
標準モジュールではPublic変数やプロシージャの名称を記述するだけでしたが、クラスモジュールでは、
クラス名.プロシージャ(変数/プロパティ)
としなければなりません。
さらに、標準モジュールは同一プロジェクトからしか呼び出せませんでしたが、クラスモジュールは、ActiveX DLL/EXEとして、つまり、1つのオブジェクトとして、プロジェクトの外から呼び出すことができるという、大きな特徴があります。
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という変数をプロパティとして持てば、
取得のみ可能とか設定のみ可能という風にもできます。
自分の知っているのは以上です。
参考になれば幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザー定義関数に#NAME?が返...
-
vba userFormのSubを標準モジュ...
-
Excel VBA 定義されたプロージ...
-
Excel VBAでリンク切れをチェッ...
-
VBAで別モジュールへの変数の受...
-
Excel VBAで、ユーザーフォーム...
-
シャープ製品JH-WB1821 と BCG...
-
Excelで時刻になったら知らせて...
-
COBOL85からCOBOL2002移行
-
標準モジュールを削除したい。(...
-
エクセルVBAでシートモジュール...
-
グラフのX,Y座標を取得したい
-
Access VBA標準モジュールにつ...
-
VBでグローバル変数を宣言するには
-
VBA This Workbookモジュール...
-
エクセルVBA 時間のカウントダ...
-
本当にPublicな変数(配列で)
-
モジュールとは何ですか
-
ユーザーフォーム上に表示され...
-
モジュールとクラスの違いって...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
エクセルVBAでシートモジュール...
-
VBでグローバル変数を宣言するには
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAで、ユーザーフォーム...
-
Excel VBA 定義されたプロージ...
-
vba userFormのSubを標準モジュ...
-
標準モジュールを削除したい。(...
-
'Range'メソッドは失敗しました
-
VBAで別モジュールへの変数の受...
-
モジュールからフォームのボタ...
-
モジュールの最大数はいくつな...
-
グラフのX,Y座標を取得したい
-
モジュールとクラスの違いって...
-
【vba】フォームに書いてあ...
-
Form間の値の渡し方
-
VBのフォームモジュールと標準...
-
VBA モジュールで共通に使う変...
-
Excel VBA 『Call』で呼び出す...
-
acwzlibとは?
おすすめ情報