関連情報
ホーム > 製品 > NAG Fortran コンパイラ > Fortran Builder > DLL を作成して Excel から利用する

Fortran Builder で DLL を作成して Excel から利用する

Fortran Builder は、実行形式(.exe)以外にもダイナミックリンクライブラリ(.dll)やスタティックライブラリ(.a)の作成が行えます。特に DLL は様々な環境から使える強力な仕組みであるため、Fortran で書いた計算ルーチンを Excel などの他の環境から使うことが可能です。

ここでは、Fortran Builder を用いて DLL ファイルを作成し、Excel から呼び出す例を示します。

@ DLL プロジェクトを作成する
A プロジェクトにソースファイルを追加する
B ソースファイルにプログラム(計算ルーチン)を書く
※ プロジェクトを 32-bit モードに変更する(64-bit Windows ユーザーのみ)
C プロジェクトをビルドする(DLL ファイルを生成する)
※ プロジェクトフォルダーを開く
D DLL を Excel から呼び出す

@ DLL プロジェクトを作成する

メニューから「ファイル > 新規作成 > プロジェクト」を選択してください。

プロジェクトの作成メニュー

以下のような画面が表示されますので、「ダイナミックリンクライブラリ」を選択後に「プロジェクトの名前」を dlltest として「次へ」ボタンを押してください。

以下のような画面が表示されますが、このまま「OK」ボタンを押して次に進んでください。

以下のような画面が表示されれば、DLL プロジェクトの作成は無事行われています。
次のステップに進んでください。

A プロジェクトにソースファイルを追加する

メニューから「ファイル > 新規作成 > ファイル」を選択してください。

ファイルの作成メニュー

以下のような画面が表示されますので、「Fortran 自由形式ソースファイル」を選択後に「OK」ボタンを押してください。

ファイルの作成ダイアログ1

以下のような画面が表示されますので、「ファイル名」を myfunc として「OK」ボタンを押してください。

以下のような画面が表示されれば、ソースファイルの作成は無事行われています。
次のステップに進んでください。

B ソースファイルにプログラム(計算ルーチン)を書く

以下のソースプログラムを入力してください。
倍精度実数 a と b を引数にとり、a + b を倍精度実数として返す関数です。

function myfunc(a, b)
  double precision a, b
  double precision myfunc
  myfunc = a + b
end function

入力が終わったら、メニューから「ファイル > 上書き保存」(または Ctrl + S)を選択してください。

上書き保存メニュー

※ プロジェクトを 32-bit モードに変更する(64-bit Windows ユーザーのみ)

DLL は 32-bit 版と 64-bit 版の両方(32-bit Windows では 32-bit 版のみ)が作成可能です。ここでは 32-bit 版の DLL を作成しますので、プロジェクトが 32-bit モードになっている必要があります。64-bit Windows をご利用のユーザーはプロジェクトを 32-bit モードに変更する必要があります。

※ 32-bit Windows をご利用のユーザーはこのステップは必要ありません。次のステップへ進んでください。

メニューから「プロジェクト > プロジェクトの設定」を開いてください。

「基本設定」の「ビットモード」を 32-bit に設定して「OK」ボタンを押してください。

C プロジェクトをビルドする(DLL ファイルを生成する)

メニューから「プロジェクト > ビルド」を選択してください。

ビルドメニュー

問題が無ければ、メッセージウィンドウに以下のように表示され、プロジェクトフォルダーに DLL ファイルが作成されます。

※ プロジェクトフォルダーを開く

メニュー「表示 > プロジェクトフォルダー」から、プロジェクトフォルダーを直接開くことができます。

プロジェクトフォルダーの表示メニュー

フォルダーの中に、DLL ファイル(dlltest.dll)が作成されていることが分かります。

D DLL を Excel から呼び出す

Excel 起動してください。

Alt + F11 を押して(Alt キーを押しながら F11 を押す)Visual Basic エディタを開いてください。

メニューから「挿入 > 標準モジュール」を選択してください。

ここで利用する関数(testdll.dll 内の MYFUNC)の宣言を行います。testdll.dll の指定はフルパスで行ってください。以下にコード例を示しますが、DLL ファイルのパスはユーザー環境に合わせて適宜書き換えてください。

Declare Function MYFUNC Lib "C:\Users\MyUser\Documents\FBuilder\prjs\dlltest\dlltest.dll" ( _
   ByRef A As Double, _
   ByRef B As Double _
) As Double

Excel シートに戻り、一つのセルを選択した状態で「関数の挿入」を選択してください。

以下のように「関数の挿入」ウィンドウが表示されますので、「関数の分類」を「ユーザー定義」にし、MYFUNC を選択して「OK」ボタンを押してください。

以下のように「関数の引数」ウィンドウが表示されますので、数値を直接入力するか、もしくはセルを指定してください。ここでは、A に 5 、B に 10 を直接入力しています。

問題がなければ、始めに選択したセルに答え(ここでは 15)が得られます。

Results matter. Trust NAG.
Privacy Policy | Trademarks