0

以下に示すように、フォームの値は1月から6月までの月です。

  • 1月
  • 2月
  • 行進
  • エイプリル
  • 五月
  • 六月

たとえば Jan が選択されている場合、e から h までの列が表示されるようにします。Jan が選択されていない場合、列 e から h は非表示になります。

1月 - (列 EH)
2 月 - (列 IM)
3 月 - (列 NR) 4 月 -
(列 SW)
5 月 - (列 X-AB) 6 月 -
(列 AC-AG)

4

1 に答える 1

1

スタック オーバーフローへようこそ。時々、マクロレコーダーがあなたの友達です。

列 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
于 2012-07-17T14:35:50.253 に答える