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

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

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

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

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

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

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

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

以下のような画面が表示されれば、DLL プロジェクトの作成は無事行われています。

次のステップに進んでください。

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

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

ファイルの作成メニュー

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

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

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

以下のような画面が表示されれば、ソースファイルの作成は無事行われています。

次のステップに進んでください。

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

以下のソースプログラムを入力してください。

倍精度実数 a と b を引数にとり、a + b を倍精度実数として返す関数です。

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

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

上書き保存メニュー

※ プロジェクトを 32-bit モードに変更する(32-bit Excel でご利用の場合)

32-bit Excel でご利用の場合は、DLL も 32-bit である必要があります。
(なお、64-bit Excel でご利用の場合は、DLL も 64-bit である必要があります。)

32-bit DLL を作成する場合は、プロジェクトのビットモードが 32-bit になっている必要があります。
(なお、64-bit DLL を作成する場合は、プロジェクトのビットモードが 64-bit になっている必要があります。)

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

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

※ この時、「DLL 互換(-compatible)」オプションにチェックが入っていない場合は、チェックを入れてください。

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

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

ビルドメニュー

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

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

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

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

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

⑤ DLL を Excel から呼び出す

Excel 起動してください。

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

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

ここで利用する関数(myflib.dll 内の MYFUNC)の宣言を行います。myflib.dll の指定はフルパスで行ってください。

以下にコード例を示しますが、DLL ファイルのパスはユーザー環境に合わせて適宜書き換えてください。

Private Declare PtrSafe Function MYFUNC _
Lib "C:\Users\Username\Documents\FBuilder\prjs\myflib\myflib.dll" _
(ByRef A As Double, ByRef B As Double) As Double

Function myfunction(ByRef X As Double, ByRef Y As Double) As Double
  myfunction = MYFUNC(X, Y)
End Function

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

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

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

ここでは、X に 1.1、Y に 2.2 を直接入力しています。

問題がなければ、始めに選択したセルに、答え 3.3 が得られます。

関連情報
MENU
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks