VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/07/31(Thu) 10:54
投稿者Say
Eメール
URL
タイトルRe^3: Excel側からの操作

> DDEとかCOM化とかいうのは聞いたこともありません。
「DDE」はここの過去ログにも何度か出ています。
VBヘルプで
LinkItem、LinkMode、LinkTopic プロパティを調べてみてください。
プロセス間通信としては簡単な方法のひとつです。

「COM化」は「ActiveX化」といったほうがわかりやすかったですね。
(ここでは COM = ActiveX と考えてください。)
VBアプリをCOM(ActiveX)として作るには、
VB起動時、新しいプロジェクトウィンドウの新規作成タグで、
ActiveXコントロール、ActiveXExe、ActiveXDLLのいずれかを選んでください。

「関数の公開」が目的なら、ActiveXDLLが適当でしょう。
(Timerコントロールのように、貼り付けて使いたいなら、
ActiveXコントロールにします。)

公開したい関数をクラスとして実装し、
(ActiveXDLLを選んだ時点でクラスモジュールが用意されますから、
その中に関数を記述すればOKです。)
プロジェクト名、クラス名を決めて保存し、
コンパイルすれば、拡張子DLLのファイルが作られます。

たとえばこのときのプロジェクト名がprjTestClass
クラス名がclsTestClass  
作った関数が
Public Function AddLong(plngA As Long, plngB As Long) As Long
    AddLong = plngA + plngB
End Function
だとすると、Excel VBA側から

Private Sub CommandButton1_Click()
    Dim a As Object
    Set a = CreateObject("prjTestClass.clsTestClass")
    Sheets("Sheet1").Cells(1, 1).Value = a.AddLong(100, 200)
End Sub

みたいな感じで利用できます。


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -