ソフト開発塾 ActiveX EXEで、共有モジュールにする。

まず、新しいプロジェクトで、ActiveX.EXEを選びます。

すると、プロジェクト内に、1つクラスが作成されます。

プロジェクトとクラスのオブジェクト名を変更します。
(この名前が、外部から参照されるようになるため、非常に重要です)

では、ここからサンプル

プロジェクトをTESTに変更します。
クラスをTESTCにします。
ワークスペース
こんな感じになります。

つぎに、TESTSにメソッドを作成します。

' メソッド
Public Sub Run()
Debug.Print "メソッド実行"
End Sub
これだと、ActiveXDLLとあまり違いがないので、
モジュールを追加します。
ワークスペース
こんな感じになります。

つぎに、モジュールに、コード(Sub Main)を書きます。(ここがポイント)

Sub Main()
If App.StartMode = vbSModeStandalone Then
Dim S As New TESTS
S.Run
End If
End Sub
これで完成、実行してみて下さい。

?動かない??

プロジェクトのプロパティでスタートアップを確認してみましょう。

VB プロダクト プロパティ
スタートアップをSub Mainにします。

さあもう一度実行してみましょう。

?動かない??

もう一度、プロジェクトのプロパティで、
つぎは、コンポーネントを確認してみましょう。

VB プロダクト プロパティ
スタートモードを独立型にします。

さあ、再度実行してみましょう。

うまくいきましたか?

質問:でも、標準のEXEとの違いがよくわからない。

では、少し複雑になりますが、フォームを追加して確認できるように
プログラムを書きましょう。

プロジェクト
こんな感じです。

クラスのTESTSを修正します。

' メソッド
Public Sub Run()
Debug.Print "メソッド実行"
Dim F As New Form1
F.Show vbModal
End Sub
では、テストしておきましょう。

フォームは表示できたでしょうか?

では、コンパイルして、実行ファイル(EXE)を作成して下さい。

作成した実行ファイル(ここではTEST.EXE)を実行します。

フォームが表示できましたか?

では、このAvtiveXEXEを別のプログラムで起動してみましょう。

ここから、サンプルのAvtiveXEXEを動かすサンプル

あたらしいプロジェクト、標準EXEを選択します。
プロジェクト
こんな感じになります。

つぎに、フォームのコードに、プログラムを書きます。

Dim S As Object

Private Sub Form_Load()
Set S = CreateObject("TEST.TESTS")
S.Run
End Sub
実行してみて下さい。

フォームが表示されそれを閉じると、
もう一つのフォームが表示されます。

解説:一つ目のフォームがActiveXEXEのフォームです。
わかりにくい場合は、フォームにラベルを張り付けるなどして
フォームを識別してみて下さい。
ActiveXEXEにする事で、EXEで持っている機能を
他のプログラムに公開することができます。
どうでしょうか?

トップページ ソフト開発塾 前のページへ戻る


参考にした方は、広告ページも訪れてください。よろしくお願いします。

---KONDO-NET.GR.JP---