• ベストアンサー

クラスモジュール

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

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

  • ベストアンサー
  • catpow
  • ベストアンサー率24% (620/2527)
回答No.1

>>クラスモジュールを学んで使うと もっと作業が捗るのでしょうか? 昔、JavaやC++などのオブジェクト指向言語が流行したとき、「再利用しやすいクラスを作れば、開発作業が捗る」と宣伝されましたし、関連する書籍が多数出版され、セミナーなど色々とありました。 「よく使うクラスモジュールを作っておけば、それを継承などして、ちょっと修正したら、使いたいモジュールが簡単に作れる」という発想でした。 しかし、実際問題として、細部における微細な変更であればいいのですが、「基本クラスの根幹に関わる仕様を変えないと、使いまわしができない」とか、「基本クラスを変更すると、その影響が広範囲に及んでしまい、修正工数が膨大になってできない」というのが開発現場で明らかになりました。 実際、私もC++による開発を行なったとき、クラスモジュールの再利用をしようとしたとき、調べるソースの範囲が広範囲となり、しかも、修正がやりにくくて、とても作業に時間がかかったことがありました。 そして、最終的にそのプロジェクトは、ユーザからの要望に対応できず、完成を見ることなく、失敗に終わってしまいました。 判りやすくいえば、全てのソフトウエア開発の問題を解決する「銀の弾丸」だと思われた「オブジェクト指向」とか「クラスモジュール」だったけど、やはり、それらは銀の弾丸ではなく、多くのプログラマは騙されていたというか、勝手な思い込みをしていたということでしょう。 そして、質問者さんの場合、あまりクラスモジュールを使うメリットは無いと思います。

qwtvkjukxnv
質問者

お礼

回答頂きありがとうございました。

その他の回答 (2)

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

個人で、勤務先でVBAコードを書き散らかしているアマグラマー?ですが、 クラスモジュールは時々使用しています。使用するのは、 1.データの持ち方で課題解決が楽になると思われる時。 2.疑似コントロール配列を使いたいとき。 ですね。以前に真面目に回答した事例がありますのでご覧下さい。 http://okwave.jp/qa/q8011387.html クラスモジュールの使い方の一部に過ぎないとは思いますが、ご参考まで。

qwtvkjukxnv
質問者

お礼

回答頂きありがとうございました。

回答No.2

Q、クラスモジュールを使う事のメリットを教えていただけますか? A、メリットはゼロ。  VBAってのはプログラム言語であってプログラム言語にあらず。正確には使用ソフトの利用を補助する言語です。ですから、そもそもがクラスモジュールの開発の必要性も意義もない訳です。 【仮に本格的なクラスモジュールを開発し組み込むと・・・】  関数オーバーヘッドエラーなどが発生してソフト本体が動作不能に陥ります。ですから、独自イベントを発生させる程度の単発クラスモジュール程度が限界です。 【JAVAやC#などはクラスモジュールの設計と開発がテーマ】  一方、JavaやC#ってのは純プログラム言語です。DoCmd.RunSQL なんてのも自分で設計し自分で開発しなきゃーなりません。私もJavaに挑んでMySQLのコマンドラインツールを自作してみましたが、もう、クラスモジュールの出来が全てってのを心底実感しましたね。 >クラスモジュールを学んで使うともっと作業が捗るのでしょうか? 人に言われて納得するのも学習だが、自分でやって実感するのも学習。そう思いますよ。 by 超素人プログラマ見習いより

qwtvkjukxnv
質問者

お礼

回答頂きありがとうございました。

関連するQ&A

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

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

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

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

  • 【ExcelVBA】commandButtonをクラスモジュールで制御するには

    お世話になります。 エクセルVBAで、ワークシートに置いたコマンドボタンの制御を、クラスモジュールから 行いたいと考えています。 制御といっているのはボタンの使用可不可、イベントの実行などです。 いろいろ調べてみたのですが、フォームからのイベントをクラスモジュールで行っているのは 見つけたのですが、ワークシート上に直接配置したボタンなどの制御は見つけることが出来ませんでした。 使用しているEXCELにバージョンは2003です。 よろしくお願いいたします。

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

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

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

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

  • クラスモジュールの使い方が詳しく書かれたVBAの本

    VBAを勉強中のものです。 クラスモジュールを使いこなせるようになりたいのですが それについてよく書かれている本はありますでしょうか? VBAの勉強している際に読む本は、標準モジュールにコードを記載するよう書かれています。 ご存知の方がいらっしゃいましたらご回答お願いします。

  • Access VBA標準モジュールについてです。

    Access VBA標準モジュールについてです。 現在、仕事上必要にかられAccessVBAを勉強中の初心者です。初歩的な質問で申し訳ありませんが、ご存知の方教えて下さい。 フォーム上のコマンドボタンを押した時に標準モジュールを作動させたいのですが、そんな方法はありますか?【クラスモジュールについての本は沢山あって何とか理解できつつありますが、標準モジュールに関しての記述があまり無い気がします。】 宜しくお願いします。

  • エクセルVBAで標準モジュールを保護したい

    エクセルのVBAマクロを使用したエクセルフィルがあります。 ユーザーは標準モジュールに記述した関数を使ってシートのマクロを変更してカストマイズできます。 ユーザーが標準モジュールを変更すると使用できなくなりますので、この標準モジュールだけをユーザーが変更できない、または見えないようにする方法をご教示いただけませんか。 よろしくお願いします。

  • subプロシージャーは標準モジュールではなくフォームのコードを書く部分

    subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? エクセルにVBAでフォームを挿入し、 「Private Sub UserForm_Initialize()」 などのフォームのモジュールに、 Sub test() MsgBox "あああ" End Sub という標準モジュールに書くべきのsubプロシージャーを書いてもなにもエラーにならないし正常に動きます。 subプロシージャーは標準モジュールではなくフォームのコードを書く部分に書いても問題ないのでしょうか? それともエラーにならなくても標準モジュールに書いた方がいいですか?

  • フォームモジュール内に サブプロシージャー

    vbaでフォームモジュール内に Sub test() End Sub のように、サブプロシージャーを作るのはよくないですか? そのフォームモジュールに関係のあるサブプロシージャーの場合です。 サブプロシージャーは標準モジュールに作った方が良いのか、 わからないので教えてください。

専門家に質問してみよう