No.4
- 回答日時:
文系(経理など)課題では余り出てこないことなので、自信はありませんが
http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/ …
を参考に言いますと
質問のTest2というような大雑束なプロシージャのことでなく、再帰をさせるコア処理のところに注目する必要が有ると思う。
下記は数の処理のようなことが多いので参考にしにくいかもしれないが
Function Kaijyou(n)
F = 1
For i = 1 To n
F = F * i
Next i
Kaijyou = F
End Function
ーーーー
Sub test01()
MsgBox Kaijyou(5)
End Sub
ーーーー
Function Fib(n)
If ((n = 1) Or (n = 2)) Then
Fib = 1
Else
Fib = Fib(n - 1) + Fib(n - 2)
End If
End Function
ーーーーー
Sub test02()
MsgBox Fib(8)
End Sub
ーーーーーー
Function con(n)
For i = 1 To n
con = con & i
Next i
End Function
ーーーー
Sub test03()
MsgBox con(8)
End Sub
のように
(1)処理の中で、左辺に「代入される関数名が単独で」がありと、その右辺にも「関数名を使った加工式」がある。
これによって1段階前の状態と、現在の状態がつながる。
(2)無限ループにならないよう、合理的な終了条件が処理の中に
かならず入っている。
この2条件を満たすように組めばよいと思う。
ただし上例のような1変数で数値を決める者でなく、文系の処理の場合は、どういう例なのか、何も言わないで質問者は>VBで繰り返して実行するプログラムを作ったのですが、といっていて良くわからない。
再帰にしないために下記にしてみた。
何かの参考になれば。
Public m
Public m1, m2
を使って
Function Kaijyou2(n)
For i = 1 To n
m = m * i
Next i
Kaijyou2 = m
End Function
ーーー
Sub test011()
m = 1
MsgBox Kaijyou2(6)
End Sub
ーーー
Function Fib2(n)
For i = 1 To n - 2
m = m1 + m2
m2 = m1
m1 = m
Next i
Fib2 = m
End Function
ーーー
Sub test021()
m1 = 1: m2 = 1
MsgBox Fib2(8)
End Sub
ーーー
Function con2(n)
For i = 1 To n
m = m & i
Next i
con2 = m
End Function
ーーー
Sub test031()
MsgBox con2(8)
End Sub
No.2
- 回答日時:
スタックオーバーフローするほど再帰するのは離脱条件が間違ってて無限再帰してるんじゃないかという気がしますが。
ループに置き換えることを考えるより先にそちらをチェックしてみては?
No.1
- 回答日時:
どのように実行したいのかを具体化しましょう
お示しのソースではTest1/Test2をどのように実行したいのかが判断できません
ある回数だけTest1/Test2を実行したい
条件が満たされるまでTest1もしくはTest2お実行したい
・・・ ある条件も提示
このTest1/Test2の他にMainループがあるのでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Visual Basic(VBA) Formulaプロパティーを使ってセルに数式を組んだのですが簡潔にしたい。 2 2022/03/28 17:38
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) VBA シート上にドロップダウンリストを作り、予め指定値をセットしたいのですが 1 2023/03/25 15:15
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
【お題】引っかけ問題(締め切り10月27日(日)23時)
【大喜利】 「日本で一番高い山は富士山……ですが!」から始まった、それは当てられるわけ無いだろ!と思ったクイズの問題
-
あなたは何にトキメキますか?
「きゅんとした〜♪」 と思う瞬間ってありますよね。 それは恋愛だったり、推し活だったり、映画のワンシーンだったり……。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
再帰処理を途中で抜けるには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でボタン名を変更しても動く
-
innerHTMLなどの反映タイミング
-
VB.netの重複データ数カウント...
-
JSPの処理の途中で、JavaScript...
-
リクエスト結果が一瞬しか表示...
-
リストボックス C# Postgre イ...
-
デザイン時のVisible=Falseは実...
-
1つのVBAコードをすべてのコア...
-
以下のコードを実行しても、オ...
-
onload onunload onbeforeunloa...
-
PowerPointで時計表示
-
計算結果が毎回違う。
-
ラベルの色がかわってくれない
-
初心者です。gulpでコンパイル...
-
C# showdialogの戻り値について
-
jquery の書き始めについて
-
alert()が実行できない
-
VBAで時間による処理判定
-
javascriptで「オブジェクトを...
-
WSH をC#で作ることは可能でし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPの処理の途中で、JavaScript...
-
if(1){...}とはどういうことで...
-
PowerPointで時計表示
-
C#でボタン名を変更しても動く
-
デザイン時のVisible=Falseは実...
-
初心者です。gulpでコンパイル...
-
jQuery ui Datepicker 明日以降...
-
VBA SORT Applyでエラー
-
〔Excel:VBA〕マクロの実行が異...
-
innerHTMLなどの反映タイミング
-
リクエスト結果が一瞬しか表示...
-
1つのVBAコードをすべてのコア...
-
VBA ステータスバー DoEvents
-
VB.netでタイマーがスタートし...
-
javascriptで最初のところに戻...
-
Excelのマクロ一括実行ができな...
-
既存のwebサイトで、ローカルの...
-
JavaScriptでショートカットキ...
-
ラベルの色がかわってくれない
-
eval()の危険性の具体例を教え...
おすすめ情報