質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

エスケープ処理

エスケープ処理とは、一連の文字や一文字に対して、一定の規則に従って別の意味を適用する処理過程です。

バックグラウンド処理

バックグラウンド処理とは、マルチタスク環境において、ユーザーに対して前面に表示させている処理の裏側で実行させる処理のことを呼びます。バックグラウンド処理を行う事によって、ユーザーが他の作業に携わることが可能となります。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

Q&A

解決済

3回答

1486閲覧

【VBA】繰り返し処理の方法がわからない

m-nm0n

総合スコア15

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

エスケープ処理

エスケープ処理とは、一連の文字や一文字に対して、一定の規則に従って別の意味を適用する処理過程です。

バックグラウンド処理

バックグラウンド処理とは、マルチタスク環境において、ユーザーに対して前面に表示させている処理の裏側で実行させる処理のことを呼びます。バックグラウンド処理を行う事によって、ユーザーが他の作業に携わることが可能となります。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

0グッド

0クリップ

投稿2020/07/25 01:24

VBAで、

VBA

1△△(処理) 2 3if A then 4 〇〇(処理) 5 同じif文を繰り返す 6else 7 △△の処理(最初)に戻る 8endif

という感じで、
・if文が成り立ったら、特定の処理をしたあと、また同じif文を繰り返す(if文の直前まで戻る)
・「else」の場合に「△△」の処理に戻る

という処理をしたいのですが、コードがわかりません。

調べてもでてきませんでした。

大雑把で申し訳ありません。
よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/07/25 01:36

どのようなキーワードで調べましたか?
abratani

2020/07/25 01:57

do (while or until) 条件 処理 loopでいいのでは?
guest

回答3

0

GoToステートメントと Do ... Loop ステートメントで可能ですが、そのままでは無限ループになるのでループを抜ける条件が必要になります。

とりあえず、△△(処理)は5回、 〇〇(処理)で終了するという条件にするなら、下記のようなコードになります。

vba

1Public Sub Sample() 2 Dim cnt1 As Long, cnt2 As Long 3 4proc1: 5 If cnt1 >= 5 Then Exit Sub 6 cnt1 = cnt1 + 1 7 Debug.Print "△△(処理)" & cnt1 & "回目" 8 9 10 Do 11 If cnt2 < 3 Then 12 cnt2 = cnt2 + 1 13 Debug.Print " 〇〇(処理)" & cnt2 & "回目" 14 Else 15 cnt2 = 0 16 GoTo proc1 17 End If 18 Loop 19 20End Sub

各処理はイミディエイトウィンドウに出力するというものにしてます。

イメージ説明

サンプルとして回数を条件にしましたが、回数が条件なら For ... Next を使うべきです。あくまで条件が不明なので回数を条件としただけです。

投稿2020/07/25 02:29

編集2020/07/25 02:32
hatena19

総合スコア34075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

loopで解決しました!!
ありがとうございました!

投稿2020/07/25 03:07

m-nm0n

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

goto ステートメントで可能ですが、永遠ループになりませんか?
もう一度、処理を整理して、gotoステートメントを使わない処理ルートを考えるべきです。

goto文を使う段階で、フローに問題がある、ロジカルをもう一度考え直すのがプログラミングとしての基本的考え方。

もっと、シンプルな方法があると思いますよ。

投稿2020/07/25 01:39

kai_keitai

総合スコア344

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問