自動フィルタを使用するワークシート上で実行できるマクロを作成しようとしています。理想的な世界では、マクロには3つのオプションがあります。VBAフィルタされたデータの選択を処理するメッセージボックス
1)表示されている最初の行の特定のVBA命令セット(以下のコードではカラーセルB2)を実行しますヘッダー)、次の表示行に移動し、メッセージボックスを再度表示します。
2)この行をスキップして、次に表示される行を見つけて、メッセージボックスを再度表示します。
3)マクロを終了します。
私は下のマクロの裸の骨を持っていますが、最初の2つのボタンが押された後にもう一度メッセージボックスを表示するという巧妙な方法がないと感じています。また、マクロを終了させるために私のコードでは納得できません。
FYI:フラット・アウト・ループ・マクロではなくメッセージ・ボックスの理由は、フィルターが定期的に変更されるため、必要なフィルターに基づいてコードを書き直す必要性を減らすためです。
Sub Msg_exe()
Dim Option_Menu As Integer
Dim strMsg As String
Dim strTitle As String
Range("B2").Select
strMsg = "Continue with this row"
strTitle = "Alert"
Option_Menu = MsgBox(strMsg, vbYesNoCancel + vbQuestion, strTitle)
Select Case Option_Menu
Case 6 'code to colour the cell goes here
Selection.Font.ColorIndex = 25
Selection.Interior.ColorIndex = 33
ActiveCell.Offset(1, 0).Activate
Do While ActiveCell.EntireRow.Hidden = True
ActiveCell.Offset(1, 0).Activate
Loop
'I need some code to show the message box again ready for the next row
Case 7 'code to skip to the next visable line goes here
ActiveCell.Offset(1, 0).Activate
Do While ActiveCell.EntireRow.Hidden = True
ActiveCell.Offset(1, 0).Activate
Loop
'I need some code to show the message box again ready for the next row
Case 2 'the code to end the macro goes here (I hope this is correct)
End
End Select
End Sub
優れています。あなたが持っているスポットがあります、これは本当にありがとうございます。 – user8939012
喜んで、これで問題が解決した場合は、この回答を正しいとマークしていただければ幸いです。ありがとう – AranDG