掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
クラスモジュールを使うタイミング (ID:76040)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
本来、ある一連のデータの集まりと、それを操作,管理する 一連の関数をくくって、1つのクラスにします。 例えば、個人情報があります。 ID番号、住所、氏名、生年月日のデータから構成されてます。 これをPrivateなユーザ定義型で定義します。 各項目に読み書きする関数を作ります。これがプロパティです。 生年月日から年齢を計算する関数を作ります。これがメソッドです。 クラスというのは閉架式図書館のようなもので、 ユーザは図書(データ変数)を直接出し入れすることはできず、 司書(プロパティ=関数)を通じて出し入れします。 このようにすれば、図書を間違った棚に戻したり、 破損した図書を戻したりする行為を防げます。 (住所に存在しない県名をいれたり、 生年月日に未来や、はるか昔の日付をいれようとするのを プロパティ関数でチェックして、防ぐことができます。) 本来クラスはこのようにデータ主体であるべきですが、 (オブジェクト指向とはそういうことです。) 実際には、関連する関数の集まりとして使われることが 多いようです。 「算術関数クラス」とか、「データベース操作クラス」などです。 ものによってはメソッドのみで構成されている場合もあるでしょう。 クラスにする目安は「再利用性」と「独立性」です。 1度しか使わない関数をクラス化するメリットはあまりありませんし、 特定のFormに依存したり、外部のパブリック変数を参照したり していたのではクラスの価値がありません。 かといって、クラス化していけないわけではありませんので、 最終的には個人の判断の問題です。 ただ、クラスモジュールの真骨頂は、 クラスモジュールをActiveX DLL または ActiveX EXE として コンパイルしておけば、ほかのプロジェクトから 参照設定、またはCreateObjectしてSetするだけで 手軽に使えるようになる、ということです。 便利なクラスを作れば作るほど、その後の開発が楽になります。 「とりあえずなんでもかんでもクラス化する。 どうしてもクラスにならないものは しかたがないから標準モジュールに記述する」でもいいとおもいます。 そのうち自分のスタイルがかたまってくるでしょう。 ================================================================== 参考:円の面積DLLの作成 VBを起動しActiveX DLLを選択。 プロジェクト名 prjEn_Mensekki クラス名 clsEn_Menseki コード Option Explicit Public Function En_Menseki(ByVal hankei As Double) As Double En_Menseki = hankei * hankei * 3.14159265358979 End Function セーブした後、ファイル→prjEn_Mensekkiの作成 でコンパイルして終了。 ---------------------------------------------------- 円の面積DLLの利用 VBを起動し標準Exeを選択。 プロジェクト名 Project1 フォーム名 Form1 コマンドボタン Command1 プロジェクト→参照設定から prjEn_Mensekki にチェック コード Option Explicit Private Sub Command1_Click() Dim objEn_Menseki As New prjEn_Mensekki.clsEn_Menseki MsgBox objEn_Menseki.En_Menseki(10#) End Sub このように、一度コンパイルしてしまえば、 標準のライブラリと同じように使えるようになります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.