2013-04-09 5 views
7

現在、モンテカルロタイプのシミュレーションを実行するExcelワークブックを作成しています。シミュレータのコードは現在Javascriptになっていますが、VBAに移植することは、この言語に関するチームの経験の浅さを考えると重要ではないようです。だから、私はよく機能するWSCファイルにjavascriptコンポーネントを組み込むことができました。 (以下の例を簡素化。)ExcelでJavascriptを使用する

Sub Simulate() 
     Set ATPSim = GetObject("script:http://www.example.com/ATPSim.wsc") 
     'Set ATPSim = GetObject("script:C:\ATPSim.wsc") 
     Dim ParamOne As Integer 
     ParamOne = Range("B2").Value 
     Dim ParamTwo As Double 
     ParamTwo = Range("B3").Value 
     Dim ParamThree As Double 
     ParamThree = Range("B4").Value 
     Range("B1").Value = ATPSim.simulate(ParamOne, ParamTwo, ParamThree) 
    End Sub 

残念ながら、これはjavascriptのコードをホストまたは絶対パスを更新するために洗練されていないユーザーに依存する私を必要とします。自己完結型ソリューションはありますか?私はすべてを1つの.xlsmファイルに保存して、ユーザーに電子メールで送ることができます。

+1

あなたは(あまりにも多くのコードが存在しない場合)は、細胞内のJSを格納し、ユーザーの一時フォルダにファイルを書き出すことを使用することができます。 –

+0

このようにhttp://chandoo.org/wp/2010/05/06/data-tables-monte-carlo-simulations-in-excel-a-comprehensive-guide/? – deusxmach1na

+0

一時フォルダのアイデアは、うまくいくはずの面白いものです。私はそれを調べなければならない。最終的なシミュレーションコードはかなり複雑になりがちですが、数百KBを超えるとは限りません。 Chandooチュートリアルでは、VBAやJSではなく純粋なExcelを使用しています。残念ながら、このシミュレーションでは、スプレッドシートでモデル化するにはあまりにも多くの分岐点があります(1億個のセルが必要です)。 – Izomiac

答えて

1

JSをCOMコンポーネントでホストし、WSHを使用してそのコンポーネントにアクセスできるはずです。

は、ここで例を参照してください:How can I use JavaScript within an Excel macro?

+0

それは私がやったことです、AFAIK(おそらく私の専門用語は正しくありませんか?)私はそれを理解しているので、このアプローチでは、WSCを登録するか、または予測可能な場所に保管する必要があります。私はエンドユーザーがどちらかを行うのに十分な知識があるとは思わない。 – Izomiac

関連する問題