
VBAでループ処理の途中でシートに書き込みを行い、その情報を基に処理を実行したいです。
具体的には・・・
エクセルファイルには2つのシートがあります。
”設定”シートと”記入”シートです。
”設定”シートのA列には2行目から処理対象のデータベース名が記載されています。
VBAを実行すると、ユーザーフォームが立ち上がります。
ユーザーフォームが立ち上がり、”記入”シートが選択されています。
記入シートに必要な情報を入力し、フォームの”OK”ボタンを押すと『処理』が実行されます。
その後、再度ユーザーフォームが立ち上がり、【テストDB2】の必要な情報を記入シートに
入力し、処理する。これを【テストDB6】までループするといった感じのコードにしたいです。
★ループを中断しシートに記入後、復帰させる。という処理が分かりません。
コードを書いてみました。
ループを中断し処理はできるのですが、各”テストDB”で中断し処理できません。
ユーザーフォームは【テストDB6】で表示されてしまいます。
【テストDB1】、【テストDB2】・・・は飛ばされてしまいます。
修正コードを教えて下さい。
※function 処理1 のコードは省いています。
Option Explicit Dim fStop As Boolean 'グローバル変数を宣言 Sub sample() Dim i As Long, N As Long, cnt As Long With Sheets("設定") i = .Cells(Rows.Count, 1).End(xlUp).Row If i > 1 Then fStop = True Sheets("記入").Select For cnt = 2 To i DoEvents If fStop = True Then UserForm1.Label1.Caption = "【" & .Cells(cnt, 1).Text & "】の" & vbCrLf & "コードを入力して下さい。" UserForm1.Show vbModeless Sheets("記入").Select End If fStop = False Next cnt End If End With End Sub Private Sub Command1_Click() fStop = True 処理1 Sheets("記入").Select Unload Me End Sub

thisworkbookのコードとシート構成も書いて頂けますか?

回答1件
あなたの回答
tips
プレビュー