投稿時間: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
みたいな感じで利用できます。 。
|