tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: プロシージャについて
投稿日: 2009/10/14(Wed) 18:31
投稿者魔界の仮面弁士
> CallByNameのためにクラス化するには同クラスモジュールにする必要が出てしまい、

クラスモジュールの Instancing プロパティを GlobalMultiUse にすれば、
それを標準モジュールの代わりに使えます。


たとえば、Class1 に『Public Sub ABC_000()』がある場合、
通常であれば、そのクラスを利用するには

 Private Sub Command1_Click()
  Dim x As Class1
  Set x = New Class1
  x.ABC_000
 End Sub

のように、クラスのインスタンスを生成しなければなりませんが、
そのクラスモジュールを GlobalMultiUse に設定しておけば、

 Private Sub Command2_Click()
  ABC_000
 End Sub

のように、あたかも標準モジュール上のプロシージャと同様に扱えます。
こうすれば、利用側のコード変更は最低限で済むかも知れません。
(もっとも、CallByName を使う場合にはクラス変数が必須になるのですが…)


# なお GlobalMultiUse にするためには、そのプロジェクトを ActiveX DLL プロジェクトに
# 設定し、使用側はそれを参照設定する必要があります。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。