ExcelのVBAマクロで時間をtとおいて、exp(ti)=cost+isin(t)の実部と虚部を表示するプログラムを作成したいと思っています。
ソースは以下のようになっています。
Sub z()
Dim t As Double, tmax As Double
Dim dt As Double
Dim x As Double
Dim count As Integer
t = 0
tmax = 1
dt = 0.0001
count = 1
x = 0
While t < tmax
With Sheet1
.Cells(count, 1) = t '時刻t
.Cells(count, 2) = WorksheetFunction.ImReal(x) '実部
.Cells(count, 3) = WorksheetFunction.ImReal(x) '虚部
End With
count = count + 1 '書き込む行を更新
x = Exp(t * i)
t = t + dt '時刻を一ステップ更新
Wend
End Sub
これを実行すると、2列目にcos(t),3列目にsin(t)が表示されると思ったのですが、2列目には1が永遠に並び、3列目には0が並びます。複素数の設定をしていないのが原因なのか何か分からないのでもし表示される方法が分かられるかたがいらっしゃいましたらご教授お願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> Exp(t * i)
この式の意味は t という値と虚数単位との乗算を指数関数に代入したものではなく、t という変数と i という(未宣言の)変数との乗算を指数関数に代入したものです。
VBA では Excel が初期設定のままだと未宣言の変数があっても暗黙的にその変数を宣言します。
http://officetanaka.net/excel/vba/beginner/06.htm
検索してみたところ、VBA での複素数の設定法と演算に使用する関数のサマリーページが見つかりました。
http://homepage1.nifty.com/gfk/complex.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) A列B列C列 3 2023/04/26 18:11
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- 数学 単振り子とルンゲ・タック法 1 2022/07/15 00:05
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラーの意味は? Lvalue req...
-
C言語 列挙型(enum型)変数について
-
テキストボックスの値を変数に...
-
C言語 アロー演算子について質...
-
VBAでダブルコーテーション入り...
-
7行テトリスコードで分からな...
-
Variant型で宣言してるのにEmpt...
-
EXCEL/VBA 変数の値をクリップ...
-
i++と++i ってどう違うのですか?
-
verilog HDLの[=]と[<=]の使い分け
-
VB6.0 DataGridでのfirstRowの...
-
VBA 1行で複数の代入を行った...
-
C言語(高校1年の内容)について
-
画像のプログラムに関して質問...
-
初心者が簡単なPowerShellスク...
-
Access2003 オートナンバーの現...
-
Excel-vba 文字列と変数を...
-
初心者プログラミング
-
VisualStudio2022でC言語プログ...
-
プログラミングについての質問...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
C言語 列挙型(enum型)変数について
-
EXCEL/VBA 変数の値をクリップ...
-
整数xxxが大き過ぎますというエ...
-
テキストボックスの値を変数に...
-
[VBS]変数を定数に変換する方法...
-
Variant型で宣言してるのにEmpt...
-
jsp~jspにhiddenを使って変数...
-
processing エラーで、 "cannot...
-
python の 連鎖代入の文法
-
i++と++i ってどう違うのですか?
-
プログラミングで変数と関数の...
-
C言語 アロー演算子について質...
-
「%」を使って、偶数か奇数かを...
-
JavaScriptをURLから直接実行し...
-
VBA 1行で複数の代入を行った...
-
ExcelのVBAでをA列に第0〜19項...
-
無名関数のメリットがよくわか...
-
コマンドプロンプト バッチ|結...
おすすめ情報