loop処理について
こんにちは。
VISUAL BASIC初心者のため、思う様に動作せず困っています。
参考書を真似て以下の様なマクロを記述しました。
Sheets(Array("商品台帳")).Select
Set DupList = CreateObject("Scripting.Dictionary")
Set base = Range("A2")
i = 0
Do While (base.Offset(i).Value <> "")
Set x = base.Offset(i)
If DupList.Exists(x.Value) Then
DupList.Item(x.Value) = DupList.Item(x.Value) & "," & x.Row
Else
DupList.Add x.Value, x.Row
End If
i = i + 1
Loop
For Each i In DupList.keys
If InStr(DupList.Item(i), ",") > 0 Then
MsgBox i & "が、" & StrConv(DupList.Item(i), vbWide) & "行目で重複しています。" & Chr(13) _
& "重複行を修正し、初期化からやり直してください。 ", , "商品コード重複!"
End If
Next
Sheets("メニュー").Select
End Sub
やりたいことは、商品台帳シートの商品コード欄に
重複があれば、重複している組数だけメッセージボックスで知らせて、
重複がなければ、なにも出さずにメニューシートに移りたいのです。
今のコードから変更したいのは、
重複している場合は商品台帳シートのまま、
重複していない場合はメニューシートに移動するという点です。
どうもLOOPの使い方を理解できていない様で、いろいろ修正を試してみたのですが、
重複コードが複数組あるのに1組のメッセージだけしか表示されなくなってしまったりして上手く修正出来ません。
どの様に修正すれば良いのか教えて頂けませんか?
お礼
ありました! なるほど…。たぶんこのbreak loop;にぶつかったら、loop:とくっついてるネストから一気に抜けるのですね。 ありがとうございます。