• ベストアンサー

ExcelのVBAで複素数は扱えないのでしょうか?

ExcelのVBAで複素数は扱えないのでしょうか? 扱えない場合には 下記のFORTRAN77のコードの2行目は VBAではどのように記述すれば良いのでしょうか? DO 160 K=2,8192 C(K)=CMPLX(-1.,1./TAN(REAL(K-1)*PN))*C1*PN-(0.,1.)*C(K)/REAL(K-1) 160 CONTINUE 上記コードでC1=定数、PN=定数、C(K)=変数です。 ご教示を宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

計算方法自体はわかりませんが… ご参考まで http://tsuyu.cocolog-nifty.com/blog/2007/06/excel_3936.html http://homepage1.nifty.com/gfk/complex.htm VBA関連なら http://www.geocities.jp/tomtomf/denki/AC4/ac4.htm VBA用計算ライブラリを作っている人もいるらしい http://sci.tea-nifty.com/blog/2008/10/excelvba-3b05.html

tigone13
質問者

お礼

fujillin様 早々のご教示ありがとうございました。 お教えいただいたURLで勉強させていただきます。

tigone13
質問者

補足

先程fujillin様よりお教えいただいたVBA関連のURLの内容で VBA上で複素数が扱えるようになったのですが FUNCTIONの中に複素数の加算と複素数の乗算がありませんでした。 加算と乗算はどのようにすれば良いのでしょうか? VBA用計算ライブラリのURLの内容も どのようにして利用するのかがわかりません。 EXCELのバージョンは2000パーソナルSR1です。 お手数をおかけしますが宜しくお願いします。

関連するQ&A

  • エクセルVBAについての質問です。

    エクセルVBAについての質問です。 A列のCという商品名が入った列を削除したい場合下記のようにすれば可能かと思いますが、C列のCという商品名が入った列を削除したい場合どのようにすればよいか教えて下さい。 VBAに関してまだ初心者ですがどうぞよろしくお願いします。 行 = 1 Do 行 = 行 + 1 If Cells(行, 1) = "" Then Exit Do End If '行の値がC以外の時は次の行に移る Do If Cells(行, 1) = "C" Then Rows(行 & ":" & 行).Select Selection.Delete Shift:=xlUp Else Exit Do 'ジャンプ先は内側のDo~Loopのすぐ下 End If Loop 'ジャンプ先はここ If Cells(行, 1) = "" Then Exit Do End If Loop End Sub

  • fortranとVBAのdo文

    fortranをBVAのプログラムに直す作業をしています。 プログラムが不慣れなもので、基本的なことかもしれませんが書き込みます。 fortranにて do 10 i=1, n call SET(IX, i, x(i)) 10 continue ここでn、IXは整数で、サブルーチンSETで作業はします。 これをVBAで書き直すとどのようにあらわされるのでしょうか。 よろしくお願いします。

  • エクセルVBAの定数

    こんにちは! 定数について質問です。 VBAのユーザー定義定数ってVBEに記述する以外に宣言する方法はありませんでしょうか?詳しくないですがC言語のようにヘッダーファイルにリンクするように手軽でやりたいのですが無理でしょうか?

  • "VBAの繰り返し"についてお尋ねします。VBA初心者です。

    "VBAの繰り返し"についてお尋ねします。VBA初心者です。 例えば「A列の最後のセルに何か入れば、その行のB列、C列・・・の一つ上のセルに入っている計算式を繰り返しコピーする」と言うコードを教えていただけたらと思います。A列の最後のセルに何か入ってくれば、その行の一つ上のセルに入っている計算式を繰り返しコピーするというコードです。コード記述の例を教えていただけたらと思います。よろしくお願いします。

  • Excel VBAでの関数の使い方を教えてください

    いつもお世話になっております Excelシートのあるセルに、 =COUNTIF(K321:K336,"○") のような関数を挿入してあります。 行挿入する毎に、K321:K336の範囲指定部分を 1つずつ増やしていきたい(k322:k337のように・・)のですが VBAでは、どのように記述すればよいのでしょうか よろしくお願いします

  • fortran77で乱数を発生させたい

    fortran77で乱数を発生させたい こんばんわ。fortran77で乱数を発生させるにはどうすればいいのでしょうか? 調べてみるとfortran90ならば乱数の組み込み関数が用意されているようなのですが、fortran70にはないそうです。   real function random(i)    i=843314861*i+453816693    random=real(i)/2**31   end function   do 10 k=1,n    ransu(k)=random(i) 10 continue これを用いることで乱数が発生できると書いてあったのですが、オーバーフローしてしまったせいか、値がマイナスのものが出てきてしまい、うまくできませんでした。 これ以外にも方法はないでしょうか? 私の環境はsalford FTN77です。 回答よろしくお願いします。

  • Excel VBA Cells 絶対参照 書き方

    Excel VBAにてお尋ねいたします。 Excel VBAにてCellsを使用してセル範囲を指定させていただく際に、絶対参照($A$1:$E$10など)を使用する場合はどのように記述すればよろしいでしょうか? Cellsを使用するのは、セル範囲が毎回異なるため、範囲指定に変数を使用しているためです。 相対参照でしたら、Range(Cells(1,1),Cells(Rows<行番号の変数>,Cols<列番号の変数>))といった記述かと思いますが、絶対参照の場合はどのように記述すればよろしいでしょうか?

  • ExcelのVBAについて教えてください

    ワークシートの1行目から、任意の行数(行数は毎回違う)を削除する方法を教えてください。 E1から下に見にいって空白でないセルが現れたら、 そのひとつ上の行までを削除する。 Range("E1").Select Do Until ActiveCell = "" If ActiveCell = "" Then Selection.Offset(-1).Select Loop ここまでできましたが、続きがわかりません。 よろしくお願いします。 あとVBAのコードについて詳しく載っているURLを ご存知でしたら教えてください。 よろしくお願いします。

  • FortranのGO TO文について。

    Fortranのプログラムソースで 90 CONTINUE IF (式) GO TO 100 DO 110…[略] 110 CONTINUE 100 CONTINUE IF (式) THEN DO 120…[略] 120 CONTINUE GO TO 90 のような場合どのように処理が進んでいくのですか? 「GO TO(行番号)」で指定された行番号で戻った先が「(行番号)CONTINUE」の場合、 その次の行からの処理を行うのですか?

  • エクセルのセルに記述した式をVBAで読込む方法

    エクセルのセルに  a*x^2+b*x+c という式を埋め込んでおいて  (式はa,b,cの数値は定数、xはマクロ側でいろいろな数値を指定されます。) VBAのマクロに  ε=a*x^2+b*x+c のように式を埋め込む方法はないでしょうか。 例えば  n=....  x=sin(n*3.14/180) ε=a*x^2+b*x+c  Range(”D2”).value=ε   この中段の行にエクセルのセルの式を呼び出したいのです。 この式はセルにはいろいろな2次式、3次式が任意に組み込まれ、VBAを実行するたびに埋め込まれた式に自動的に記述し直すようにしたいのです。 (数式の結果の数値を入れるのではなくて式を入れたいのです) 可能でしょうか。その場合どのようなコードが考えられるでしょうか。 よろしくお願いします。