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も見ています
-
推しミネラルウォーターはありますか?
推しミネラルウォーターがあったら教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
frxファイルの役目
Visual Basic(VBA)
-
[VBA] Classから他のClassを呼び出す場合
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフのX,Y座標を取得したい
-
Excel VBA 標準モジュール内で...
-
エクセルVBAでシートモジュール...
-
Excel VBAで、ユーザーフォーム...
-
acwzlibとは?
-
Excel VBAでリンク切れをチェッ...
-
VBA モジュールで共通に使う変...
-
VBAのバージョンアップ
-
'Range'メソッドは失敗しました
-
デスクトップ用無線LAN基板でモ...
-
ベースモジュールって?
-
VBA ユーザーフォーム Image1 ...
-
CGI.pmを別の複数の自作モジュ...
-
モジュールの最大数はいくつな...
-
VBAで旧字体を異字体に一括で変...
-
ユーザー定義関数に#NAME?が返...
-
マクロについて教えてください。
-
ftpのアクティブモード対応モジ...
-
大量の標準モジュールを解放す...
-
VBAで別モジュールへの変数の受...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
エクセルVBAでシートモジュール...
-
VBでグローバル変数を宣言するには
-
Excel VBAで、ユーザーフォーム...
-
VBAで旧字体を異字体に一括で変...
-
ユーザー定義関数に#NAME?が返...
-
VBA This Workbookモジュール...
-
Excel VBA 『Call』で呼び出す...
-
【vba】フォームに書いてあ...
-
Access VBA標準モジュールにつ...
-
モジュールの最大数はいくつな...
-
'Range'メソッドは失敗しました
-
vba userFormのSubを標準モジュ...
-
VBAで別モジュールへの変数の受...
-
グラフのX,Y座標を取得したい
-
標準モジュールを削除したい。(...
-
VBAProjectのモジュ...
-
ExcelVBA:パブリック オブジェ...
-
Excel VBA 標準モジュール内で...
-
acwzlibとは?
おすすめ情報