Sheet1、Sheet2、Sheet3、Sheet4、Sheet5の5枚のブックがあります。最初のシート: "シート"にはセルがあります: "C3"にはドロップダウンメニューがあり、Opt1、Opt2、Opt3、Opt4の4つのオプションがあります。 このドロップダウンメニューで選択した内容に応じて、さまざまなシートにさまざまな列をリアルタイムで非表示にしたいと考えています。何も入力されなければ、私は列を隠してはいけません。Excel VBA別のシートの異なるセル値に応じて異なる列をリアルタイムで非表示
次のコードを入力しましたが、部分的には機能しますが、重複する列を非表示にするために問題があると思います。
さらに、ドロップダウンメニューでどのようなオプションを選択したかによって、下の列と同様に特定の行を非表示にしたいと考えています。
また、すべてのSheets1-5に同じ列を隠すように複製します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C3").Value = "Opt1" Then
Sheets("Sheet1").Columns("G:L").EntireColumn.Hidden = True
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("G:L").EntireColumn.Hidden = False
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = False
End If
If Range("C3").Value = "Opt2" Then
Sheets("Sheet1").Columns("B:F").EntireColumn.Hidden = True
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("B:F").EntireColumn.Hidden = False
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = False
End If
If Range("C3").Value = "Opt3" Then
Sheets("Sheet1").Columns("B:M").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("B:M").EntireColumn.Hidden = False
End If
If Range("C3").Value = "Opt4" Then
Sheets("Sheet1").Columns("B:AB").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("B:AB").EntireColumn.Hidden = False
End If
End Sub
を始めることができますが範囲内のすべての列がサブ(シート( "シート1")の開始時に再表示されます列( "B:AB")EntireColumn.Hidden。 = False)、その後、後でコードのif(else以外の部分)だけを追加しますか?これは、テスト条件に対して指定された列のみが非表示になることを意味します。 – QHarr