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

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

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

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

Q&A

1回答

2475閲覧

エクセルvbaの無限ループ処理の対処

iceclaimer

総合スコア4

VBA

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

0グッド

1クリップ

投稿2021/08/08 13:24

編集2021/08/08 14:07

エクセルvbaで処理が無限ループします。
あるデータ表からfor文で上から順にvlookup関数で該当するデータを出力し、データが間違いor空欄の場合は次の行にスキップして繰り返す…という処理を作ろうとしたのですが、以下文だとマクロそのものが無限にループしてしまいます。
On error Resume Next文も試したのですが、そうすると今度はエラーになった行から次の処理を始めてしまい、思うように動きません。ご教示をお願いいたします。

■VBA
Sub aaa()

On Error GoTo Skip

For i = 5 To Sheets("Data").Range("D30").End(xlUp).Row

IF(~~vlookup文の処理~~) Then

'//trueかどうか表示させる
Sheets("Data").Range("H" & i) = "true"
' Sheets("Data").Range("H" & i) = "error"

End If

SuperSkip:
Next

Exit Sub

Skip:
Resume SuperSkip

End Sub

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

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

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

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

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

meg_

2021/08/08 14:00

コードは「コードの挿入」で記入してください。
hatena19

2021/08/08 19:02

どのようなエラーを想定しているのでしょうか。 また、エラーが出たときにどのようにしたいのでしょうか。 (エラーが出たら処理を終了するとか、セルにerrorと代入するとか、、、、) あと、 On Error GoTo Skip をコメントアウトして実行してみて、 どのコードでどのようなエラーが出ているのか確認して、質問に追記してください。
guest

回答1

0

VBA

1Sub aaa() 2 On Error Resume Next 3 Dim tbl As Range 4 Set tbl = Sheets("table").UsedRange 5 Dim i, v 6 For i = 5 To Sheets("Data").Range("D30").End(xlUp).Row 7 v = WorksheetFunction.VLookup(Sheets("Data").Range("D" & i), tbl, 2, False) 8 If Err.Number = 0 Then 9 Sheets("Data").Range("H" & i) = v 10 Else 11 Err.Clear 12 End If 13 v = "" 14 Next 15End Sub

VBA

1Sub bbb() 2 Dim tbl As Range 3 Set tbl = Sheets("table").UsedRange 4 Dim i, d 5 For i = 5 To Sheets("Data").Range("D30").End(xlUp).Row 6 d = Sheets("Data").Range("D" & i) 7 If WorksheetFunction.CountIf(tbl.Columns(1), d) > 0 Then 8 Sheets("Data").Range("H" & i) = WorksheetFunction.VLookup(d, tbl, 2, False) 9 End If 10 Next 11End Sub

投稿2021/08/09 03:54

jinoji

総合スコア4592

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問