0

タブの色を変更するマクロがあります。シートに値がある場合、タブは緑色に変わります。何もない場合は赤に変わります。このマクロは、インターネットで見つけた準備が整ったものから組み合わせました。現在、これを ThisWorkbook に配置していますが、この例ではワークブック内のすべてのシートに適用され、指定した 2 つのシート ("Our Data" と "Test") のみが必要でした。このマクロを ThisWorkbook の上にあるシートに分割しましたが、機能しません。誰かがそれを修正するのを手伝ってくれますか?

Private Sub Workbook_SheetChange(ByVal Test As Object, ByVal Target As Range)
If Cells.Find("*") Is Nothing Then
    Test.Tab.ColorIndex = 3
Else
    Test.Tab.ColorIndex = 10
End If
End Sub

Private Sub Workbook_SheetChange2(ByVal Test As Object, ByVal Target As Range)
If Cells.Find("*") Is Nothing Then
    Our Data.Tab.ColorIndex = 3
Else
    Our Data.Tab.ColorIndex = 10
End If
End Sub
4

1 に答える 1

1

このように分割することはできません... 2 番目のものを削除し、以下に示すように最初に改善します。

Private Sub Workbook_SheetChange(ByVal Test As Object, ByVal Target As Range)

If Test.Name = "Our Data" Or Test.Name = "Test" Then
    If Cells.Find("*") Is Nothing Then
        Test.Tab.ColorIndex = 3
    Else
        Test.Tab.ColorIndex = 10
    End If
End Sub

現在の場所に保管してください(ThisWorkbookモジュール内)

編集-それを使用したいすべての人のための追加情報。提示されたアイデアは非常に非効率的です。いずれかのシートのいずれかのセルで変更が行われるたびに、イベントが発生します。他のイベントのご利用もご検討ください。SheetActivateの使用をお勧めしますSheetDeactivate

于 2013-03-19T15:34:59.687 に答える