このセクションでは、それを実践してみましょう。まず COM オブジェクトを作成し、次にそれを使用し、最後に改善を考えます。
まず、次の 2 つの手順を実行します。
Visual Basic を実行し、「StandardEXE」プロジェクト タイプを選択します。COM オブジェクトはクラスに基づいているため、クラスはモジュール内のコードと同様に実際にはパッケージです。それで:
「PROject」->「AddClassModule」を選択し、対応するダイアログボックスが表示されたら「ClassModule」を選択し、「開く」ボタンをクリックします。
このようにして、Project1 に含まれる Class1 と同様に、フォームがデスクトップに表示されます。
次に、空のクラスのクラス名を変更します。
クラスのプロパティ ウィンドウで、クラスの Name プロパティを CDog に変更します。
区別のため、各オブジェクト名には対応する接頭辞が付いていることに注意してください。たとえば、TextBox オブジェクトの前には「txt」が付けられ、Form オブジェクトの前には「frm」が付けられます。また、クラスの前には大文字が付けられる場合があります。文字「C」または小文字の「cls」「」ですが、ここでは前者が使用されます。
テストするためにコードを追加してみましょう。
CDog クラスの一般宣言セクションに、変数の宣言を追加します。
次に、Form1 を開きます。
フォームにコマンド ボタンを追加します。
コード ウィンドウを開き、次のコードをコマンド ボタンに追加します。
上記のコードの意味を説明しましょう。
このステートメント行は、Visual Basic に CDog オブジェクトのビット領域を設定するように通知するために使用されます。ただし、このオブジェクトは現時点では使用できないため、次のステートメントまで待つ必要があります。
CDog のインスタンスを作成するために使用されます。これは、以前は空だった MyDog テンプレートが CDog オブジェクトになり、使用できるようになることを意味します。
上記のコードの最初の行は、MyDog の Name 変数を設定するために使用され、ステートメントの 2 行目は、メッセージ ダイアログ ボックスに変数の内容を表示するために使用されます。やっと:
MyDog オブジェクトを単に空にするために使用されます。
F5 を押して実行してテストします。
どうでしょうか?しかし同時に、標準モジュールとクラスモジュールの違いは何なのか、と疑問に思わざるを得ないかもしれません。もう一度次の例を見てみましょう。
コマンド ボタンのコードを次のように変更します。
前のコードとは異なり、ここでのコードは実際に 2 つのオブジェクト MyDog と MyDog2 を定義しています。これらは CDog に基づく 2 つの独立したオブジェクトです。
F5 を押して実行してテストします。
結果はどうなりましたか?今回は2つのダイアログボックスが表示されますか? 1 人は「BillyMoore」と言い、もう 1 人は「SadieMoore」と言います。
上記で定義した各オブジェクトはNameを除いて実際の属性を持たないため、以下の処理が追加されます。
前の Class1 を開きます。
次のパブリック変数を宣言します。
前の Form1 を開きます。
コマンド ボタンのコードを次のように変更します。
コードは前のコードと似ていますが、ここでは Age 変数が使用されている点が異なります。
F5 を押して実行してテストします。
名前と年齢の内容を示す 2 つのメッセージ ダイアログ ボックスが表示されます。
次に、オブジェクトの 1 つの年齢値を 1,000 または 30,000 に設定してみます。どうなるか見てみましょう?定義された整数変数の最大値は 32,767 に達する可能性があるため、プログラムは引き続き正常に実行されますが、実際の犬 (Dog) の年齢は 30,000 歳ではありません。
では、この状況はどのように対処すべきでしょうか?
->