• ベストアンサー

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

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

質問者が選んだベストアンサー

  • ベストアンサー
  • Azzz___
  • ベストアンサー率40% (9/22)
回答No.5

こんにちは。 私は以前勉強がてらクラスモジュールを使ってドラクエのような ゲーム(戦闘シーンのみ)を作りました。 これで他の方の回答にもあったインスタンスというのが 分かった気がしました。 クラスモジュールを使う私なりの解釈では Excelに存在しない何かをExcelで使いたいときにクラスモジュールを 使います。 たとえば、Excelのオブジェクトに「車」というオブジェクトは 存在しません。 ExcelのプログラムでExcel上に車を存在させるには 車オブジェクトが必要になるので それをクラスモジュールで定義します。 ここで車種や色、大きさといったプロパティを定義します。 そして進む、止まる、バックするといったメソッドを定義します。 これでオブジェクトができるので後は標準モジュールなどから このオブジェクトを使います。 その時、オブジェクトをそのまま使うのではなく オブジェクトのコピーのようなもの(インスタンス)を使います。 、、、と話は長くなるのですが、私はこんな形で解釈しています。

quygquygqu
質問者

お礼

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

その他の回答 (4)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

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

quygquygqu
質問者

お礼

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

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 初心者に教えるようなことはないとは思いますが、簡単に言えば、クラスモジュールは、プログラムの設計図のようなものです。それを実行して、それで、インスタンスが作られるわけです。ある人は、鯛焼きの型と鯛焼きの関係だと言いましたが、私は、設計図と実体(化)(英語からの発想)だと考えています。 ユーザー定義関数などは、個別のブックで使うなら、あえてクラスで作る必要はありません。コントロール配列も、コントロール・ツールをクラスで設定するのは、好みに近いと思います。 Excel VBAでは、ひとつだけないものは、Application イベントです。でも、物知りで皮肉な人は、ThisWorkbook モジュールでも作れるのではないか、というかもしれませんが、クラス側のほうが楽だと思います。その点、Word VBAになると、標準モジュールでエラーが発生したりするので、Class を使わざるを得ない場面が出てきます。

quygquygqu
質問者

お礼

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

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

コントロール配列を使うような場面では、以下が参考になると思います。 http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P-Ctrl_Arrays.htm

quygquygqu
質問者

お礼

ありがとうございます。

  • mohenjo
  • ベストアンサー率37% (125/335)
回答No.1
参考URL:
http://www.geocities.jp/tomtomf/
quygquygqu
質問者

お礼

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

関連するQ&A