Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


47525 / 76738 ←次へ | 前へ→

【34168】EXCELデータを外部プログラムへ
質問  稲葉 E-MAIL  - 06/1/27(金) 16:12 -

引用なし
パスワード
   失礼します。どなたか教えてください・・・
少し長くなりますが、よろしくお願いいたします。


EXCELのセルに5つの適当な数字(「5,2,6,3,4」こんな感じです)を縦に順番に入力しまして、
それを、VBAを使って、外部のプログラム(恐らくC言語だと思います)にデータを送り、
その計算結果を、EXCELに表示させるというプログラムを組みたいのですが、
どなたか良い知恵をお貸しください・・・

上記の説明ではわかりにくいので、もう少し具体的に書かせていただきます。


以下が、EXCELのとあるセルに打ち込んだ命令です。

=dll_double_square(B10:B14)

ここでは、B10〜B14のセルに、先ほどの適当な数字を入力しています。


EXCELを起動させて、Alt+F11でVBAを起動させ、
その中に現時点で以下のようにプログラムしています。


Declare Function dll_double_square Lib "cdll.dll" _
  (Dim d(0 To 4) As Double) As Double


ちなみに、これではエラーが出ています・・・


"cdll.dll"というファイルは、「WINNT」というフォルダの中の、
「system32」というフォルダに入れてあります。


この「cdll.dll」というファイルをコンパイルする前のプログラムが、以下となっています。


#include "cdll.h"

DLLIMPORT double
dll_double_square (double *d)
{
 return d[0]+d[1]+d[2]+d[3]+d[4];
}


このプログラム(cdll.c)をコンパイルして、cdll.dllを作成しました。


また、cdll.c の中に、


#include "cdll.h"

というコマンドがあるのですが、
これが「cdll.h」をインクルードしているのか良くわかりません・・・


ただ、一応「cdll.c」と同じフォルダの中に、「cdll.h」も存在していて、
そのプログラムの中身は


#ifndef cdll_h_included
#define cdll_h_included

/*
* When building the DLL code, you should define BUILDING_DLL so that
* the variables/functions are exported correctly. When using the DLL,
* do NOT define BUILDING_DLL, and then the variables/functions will
* be imported correctly.
*
* You need to be using egcs-1.1.1 or newer.
*
* Building the DLL:
* - define BUILDING_DLL, which defines DLLIMPORT __attribute__((dllexport))
* Building the client code:
* - DO NOT define BUILDING_DLL, which defines DLLIMPORT to be one
*  __attribute__((dllimport))
*/

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */

DLLIMPORT double
dll_double_square (double *);

#endif /* cdll_h_included */


となっています。


以上が詳細な説明なのですが、何とか伝えられるように書いたつもりですが、
見にくい文になってしまい、申し訳ありません。


結論から言うと、エクセルに入力した数値を、「cdll.dll」に移し、
その結果をエクセルに表示させるようにしたいのですが・・・


どうかよろしくお願いいたします。

0 hits

【34168】EXCELデータを外部プログラムへ 稲葉 06/1/27(金) 16:12 質問
【34170】Re:EXCELデータを外部プログラムへ Blue 06/1/27(金) 16:39 回答
【34171】Re:EXCELデータを外部プログラムへ Blue 06/1/27(金) 16:48 回答
【34189】Re:EXCELデータを外部プログラムへ 稲葉 06/1/28(土) 4:41 お礼

47525 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free