• 締切済み

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

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

  • ma-ki
  • お礼率56% (9/16)

みんなの回答

  • 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

  • 標準モジュールとクラスモジュールの違い

    マイクロソフトのAccess2000でVBAプログラミングを行なっておりますが、 基本的なことを教えてください。 「標準モジュール」と「クラスモジュール」の違いはなんですか? 例えば、どこからでも使えるプロシージャ Public Function getSum( i1 as integer, i2 as interger ) getSum = i1 + i2 End Function を定義したとして、標準モジュール内に書くのとクラスモジュール内に 書くのとでは、何が違ってきますか?その他とにかく「標準モジュール」 とクラスモジュールの違いを教えてください。

  • クラスモジュール

    私は5年位vbaをやっていますが 標準モジュールとフォームモジュールしか使った事が有りません。 エクセルだったらシートモジュールはあります。 クラスモジュールの存在は知って、 学ぼうと思ったのですが 意味がよくわからない為挫折しました。 でも今自分がやりたい事はクラスモジュールがなくても出来ています。 クラスモジュールを学んで使うと もっと作業が捗るのでしょうか? クラスモジュールを使う事のメリットを教えていただけますか?

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

    VBを勉強し始めた初心者です。 標準モジュールについては何とかわかるようになってきましたが、クラスモジュールについては、ほとんどわかりません。 クラスモジュールの意味や、プログラム法について初心向けにわかりやすく書いた本等がありましたら、ご紹介下さい。

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

    笑われてしまうかもしれませんが、クラスモジュールはどんな時に使用するべき なのかが分かりません。 標準モジュールとどう使い分けていけば良いのか教えてください。 また、DLLとOCXも、どう使い分けたら言いか教えてください。 よろしくお願いします。

  • クラスモジュールを使わないとできないこと

    エクセル、アクセスでvbaを利用しています。 現在はすべて標準モジュールに記載しているのですが 「クラスモジュールを使わないとできないこと」もあるのでしょうか? クラスモジュールの使い方、必要性がいまいちわかりません。 まだ初心者な為複雑なコードは作っていません。 よろしくお願いします。

  • クラスモジュールを使う事によって何が出来るようにな

    クラスモジュールを使う事によって何が出来るようになるのですか? 私は今標準モジュールとフォームモジュールでしかコードを書いた事がないのですが クラスモジュールの使い方やクラスモジュールにコードを書くことによって出来ることがわかりません。 今の所、クラスモジュールを使わなくても業務が問題なく遂行されているのですが クラスモジュールを使う事によってどんなメリットがあるのでしょうか? エクセルです。

  • 標準モジュールとクラスモジュールについて

    標準モジュールでType型を使用しています。 この標準モジュールをクラスモジュールに置き換えて、Formから呼び出すCOMに作り変えたいのですが、引数ってどう設定したらよいのでしょうか? 今は標準モジュールなので、こんな感じで呼んでいるのですが・・・ 例) Private Sub Command1_Click() Dim in_b As IN_PARA Dim out_b As OUT_PARA in_b.Name = "山本太郎" in_b.Seikaku = "優しい" in_b.Syumi = "釣り" in_b.Tokugi = "野球"

  • モジュールとクラスの違いってなんなんですか?

    モジュールとクラスの違いってなんなんですか? 本などをみてもいまいち分かりません。

  • クラスモジュール

    クラスモジュールについて詳しく使い方を知りたいのですが 様々な本を見ましたが、ほとんどの本が1~2ページ程度の軽い説明で終わらせているのがほとんどです。(特にVBA系は) これについて詳しく書かれた本をお知りの方がいましたら教えていただけないでしょうか?VBAはないと思うのですがVBで大丈夫です 特に配列(行列)を渡したりして計算させるやり方が知りたいです。コントロールなどを使ったものではなく(基本的には同じかとも思いますが) よろしくお願いします。

  • クラスモジュールを使いたい

    VBで、クラスモジュールを使いたいのですが、どうやらホストアプリケーションがクラスをサポートしていないらしく、クラスのモジュールを作成しようとするだけでエラーになります。 ホストアプリケーションにクラスを使用できるようにするには、何をどう設定すればよいのでしょうか? お願い致します。

専門家に質問してみよう