プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (5件)

こんにちは。



私は以前勉強がてらクラスモジュールを使ってドラクエのような
ゲーム(戦闘シーンのみ)を作りました。
これで他の方の回答にもあったインスタンスというのが
分かった気がしました。

クラスモジュールを使う私なりの解釈では
Excelに存在しない何かをExcelで使いたいときにクラスモジュールを
使います。
たとえば、Excelのオブジェクトに「車」というオブジェクトは
存在しません。
ExcelのプログラムでExcel上に車を存在させるには
車オブジェクトが必要になるので
それをクラスモジュールで定義します。
ここで車種や色、大きさといったプロパティを定義します。
そして進む、止まる、バックするといったメソッドを定義します。

これでオブジェクトができるので後は標準モジュールなどから
このオブジェクトを使います。
その時、オブジェクトをそのまま使うのではなく
オブジェクトのコピーのようなもの(インスタンス)を使います。
、、、と話は長くなるのですが、私はこんな形で解釈しています。
    • good
    • 1
この回答へのお礼

私も勉強がてらゲームを作ってみたいと思います。
大変参考になりました。ありがとうございます。

お礼日時:2009/07/16 20:35

最近、クラスモジュールを使った回答を2件しています。


http://okwave.jp/qa5087647.html
のNo.3ですが、一秒間に一度起こるイベントを定義しています。これは、クラスモジュールを使わないとできないと思います。

http://okwave.jp/qa5070895.html
のNo.3ですが、これはクラスモジュールを使うことで、データの管理が楽になっている事例です。この質問者は、関数に10個のデータを渡す時、シート間にまたがるデータ、列間にまたがるデータを渡すアルゴリズムに苦労されたのだと思いますが、クラスモジュールを使うと、データをオブジェクトが保持していますので、ところてん式にデータを1個ずつ渡していくだけで、単純移動平均の計算ができています。まあ、こんな簡単な事例ですのでモジュールレベルの配列にデータを入れて、普通の手続き型?プログラミングでも出来ると思いますが。
    • good
    • 1
この回答へのお礼

ありがとうございます。
よく読んでみます!

お礼日時:2009/07/09 22:34

こんにちは。



初心者に教えるようなことはないとは思いますが、簡単に言えば、クラスモジュールは、プログラムの設計図のようなものです。それを実行して、それで、インスタンスが作られるわけです。ある人は、鯛焼きの型と鯛焼きの関係だと言いましたが、私は、設計図と実体(化)(英語からの発想)だと考えています。

ユーザー定義関数などは、個別のブックで使うなら、あえてクラスで作る必要はありません。コントロール配列も、コントロール・ツールをクラスで設定するのは、好みに近いと思います。

Excel VBAでは、ひとつだけないものは、Application イベントです。でも、物知りで皮肉な人は、ThisWorkbook モジュールでも作れるのではないか、というかもしれませんが、クラス側のほうが楽だと思います。その点、Word VBAになると、標準モジュールでエラーが発生したりするので、Class を使わざるを得ない場面が出てきます。
    • good
    • 1
この回答へのお礼

Wordならクラスモジュールを使う機会が多いのですね。
参考になりました。

お礼日時:2009/07/08 21:50

コントロール配列を使うような場面では、以下が参考になると思います。



http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P …
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/07/08 20:48
    • good
    • 0
この回答へのお礼

もろクラスモジュールのことが書かれていますね!
よく読んでみます!

お礼日時:2009/07/08 20:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!