- - PR -
.NETで財務処理を行いたい場合
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-08-30 21:47
お世話になってます。
VBAで搭載されていた財務関数に相当する処理を.NETから行いたいのですが、.NET Frameworkのクラスライブラリではこれらの処理は提供されているのでしょうか? 具体的には、IRR処理(一連の定期的なキャッシュフローに対する内部利益率を返す)を行おうと考えているのですが、以前のVisual BasicではIRR関数が標準で提供されていました。 .NETの中にこういった財務処理を行うクラスが提供されているのをご存知の方がいらしたら、情報提供をお願いします。 |
|
投稿日時: 2002-08-30 22:43
> 具体的には、IRR処理(一連の定期的なキャッシュフローに対する
> 内部利益率を返す)を行おうと考えているのですが、以前のVisual > BasicではIRR関数が標準で提供されていました。 > .NETの中にこういった財務処理を行うクラスが提供されているのを > ご存知の方がいらしたら、情報提供をお願いします。 .NET Framework SDKのドキュメントをIRRで検索したらちゃんとのってました。 VisualBasic .NETでは使えるようです。 #SDKのドキュメントはほとんど日本語化されてます。SDK自体、フリーで 提供されてますので、いちどおとしてみてみることをおすすめします。 |
|
投稿日時: 2002-08-31 01:02
shuさん、早速の返事ありがとうございます。
実はMSDNだけを検索していてSDKの検索までは行っていませんでした。すみません。 SDKドキュメントのほうをあさってみたいと思います・・・ |
|
投稿日時: 2002-08-31 16:32
その後の報告です。
VBで以下のような実行ファイルを作成して実行したところ、正常に動作しました。 == irr.vb ========================== Option Explicit Option Strict Imports System Imports Microsoft.VisualBasic.Financial Namespace Test Public Class Financial Public Overloads Shared Sub Main() Try Dim guess As Double Dim ret As Double Dim values(4) As Double guess = 0.1 values(0) = -70000 values(1) = 22000 values(2) = 25000 values(3) = 28000 values(4) = 31000 ret = IRR( values, guess ) * 100 Console.WriteLine( "The internal rate of return for these five cash flows is " & _ System.Convert.ToString( ret ) & " percent." ) Exit Sub Catch e As Exception Console.WriteLine( e.ToString() ) End Try End Sub End Class End Namespace ところがこれを今度はDLLにして表示しようとしたところ、処理が途中で中断してしまいます。 コンソールで追ってみたところ、DLL側でIRR関数を起動する直前のコンソール出力までは正常に実行されるのですが、IRR関数を実行するとそこで呼び出し側のEXEごと処理が終了してしまうようです。(DLL内のIRR呼び出し後のコンソール文も、呼び出し側での実行後のコンソール文も出力されない) == DLL:test.vb ==================== Option Explicit Option Strict Imports System Imports Microsoft.VisualBasic.Financial Namespace Test Public Class Financial Public Function DisplayIRR() As String Try Dim guess As Double Dim ret As Double Dim values(4) As Double Dim msg As String guess = 0.1 values(0) = -70000 values(1) = 22000 values(2) = 25000 values(3) = 28000 values(4) = 31000 Console.WriteLine( "IRRを計算します..." ) ret = IRR( values, guess ) * 100 msg = "The internal rate of return for these five cash flows is " & _ System.Convert.ToString( ret ) & " percent." Console.WriteLine( msg ) DisplayIRR = msg Exit Function Catch e As Exception Throw e End Try End Function End Class End Namespace == 呼び出しEXE:testclient.cs ====== using System; using Test; namespace TestClient { public class FinancialClient { public static void Main() { try { Test.Financial test = new Test.Financial(); Console.WriteLine( "DisplayIRR begin." ); test.DisplayIRR(); Console.WriteLine( "DisplayIRR complete." ); return; } catch( Exception e ) { Console.WriteLine( e ); } } } } これで実行した場合の結果・・・ C:\\>testclient DisplayIRR begin. IRRを計算します... どこに問題があるのでしょうか?もう少し調べてみます・・・ |
1