以下に示すように、フォームの値は1月から6月までの月です。
- 1月
- 2月
- 行進
- エイプリル
- 五月
- 六月
たとえば Jan が選択されている場合、e から h までの列が表示されるようにします。Jan が選択されていない場合、列 e から h は非表示になります。
1月 - (列 EH)
2 月 - (列 IM)
3 月 - (列 NR) 4 月 -
(列 SW)
5 月 - (列 X-AB) 6 月 -
(列 AC-AG)
スタック オーバーフローへようこそ。時々、マクロレコーダーがあなたの友達です。
列 E から H までを非表示にする自分のマクロを記録しました。記録されたコードは次のとおりです。
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 7/17/2012 by Jimmy Peña
'
'
Columns("E:H").Select
Selection.EntireColumn.Hidden = True
End Sub
Select/Selection のペアは、これら 2 つの行を連結できることを明確に示しています。次のようにコードを短くします。
Columns("E:H").EntireColumn.Hidden = True
プロパティの値は であるためTrue
、値を に設定して列を非表示にし、値を に設定して列を表示できることがわかりTrue
ますFalse
。
使用しているコードを示していないため、使用するためにカスタマイズする必要がある一般的なアプローチを提供します。
サンプルのユーザーフォームにリストボックスを追加しました。このコードは、選択された値に応じて選択的に非表示/非表示を切り替えます。
Private Sub ListBox1_Click()
Dim selectedValue As String
' get selected value from listbox
selectedValue = ListBox1.value
Application.ScreenUpdating = False
' unhide any columns
Cells.EntireColumn.Hidden = False
Select Case selectedValue
Case "JAN"
Columns("E:H").EntireColumn.Hidden = True
Case "FEB"
Columns("I:M").EntireColumn.Hidden = True
Case "MARCH"
Columns("N:R").EntireColumn.Hidden = True
Case "APRIL"
Columns("S:W").EntireColumn.Hidden = True
Case "MAY"
Columns("X:AB").EntireColumn.Hidden = True
Case "JUNE"
Columns("AC:AG").EntireColumn.Hidden = True
End Select
Application.ScreenUpdating = True
End Sub