Excel マクロが想定どおりの順序で実行されない

Excel マクロが想定どおりの順序で実行されない

各ワークシートでアドインを実行するマクロを作成しました。アドインは Sage 固有のアドインです。sendkeys は、どのような sendkeys を入力しても動作するはずですが、すべてのシートでテスト「テキストの追加」を実行し、元のアクティブ シートに戻ってから、シートの数だけアドインを実行します (すべてアクティブ シートで)。非表示のワークシートをスキップするように何かを追加する必要があります...? 助けてください。

Sub CountSheets()

Dim ws As Worksheet

Dim starting_ws As Worksheet

Set starting_ws = ActiveSheet 'remember which worksheet is active in the beginning

For Each ws In ThisWorkbook.Worksheets



 ws.Activate
                Application.SendKeys "%XRV%O", True
                Application.Wait (Now + #12:00:01 AM#)
                ws.Cells(1, 1) = "Created by Yo Castle 7 "
                Application.Wait (Now + #12:00:01 AM#)

Next


starting_ws.Activate 'activate the worksheet that was originally active


End Sub

答え1

表示されているシートのみにマクロを実行するには、IFループを開始した直後に、Visibleプロパティが true の場合、それ以外の場合は次のプロパティに進みます。

したがって、コードは次のようになります。

Sub CountSheets()

Dim ws As Worksheet

Dim starting_ws As Worksheet

Set starting_ws = ActiveSheet 'remember which worksheet is active in the beginning

For Each ws In ThisWorkbook.Worksheets

If ws.Visible = true Then

 ws.Activate
                Application.SendKeys "%XRV%O", True
                Application.Wait (Now + #12:00:01 AM#)
                ws.Cells(1, 1) = "Created by Yo Castle 7 "
                Application.Wait (Now + #12:00:01 AM#)
End If

Next


starting_ws.Activate 'activate the worksheet that was originally active


End Sub

関連情報