クエリを実行するたびに特定の範囲の列を非表示にするマクロを見ています。
例: 初めてクエリを実行するときは、列 A から D を非表示にする必要があります。同様に、次にクエリを実行するときは、列 E から H を非表示にする必要があります。
基本的には、列の非表示パターンを一般化するクエリです。
この点について、あなたの専門知識をお願いします。
クエリを実行するたびに特定の範囲の列を非表示にするマクロを見ています。
例: 初めてクエリを実行するときは、列 A から D を非表示にする必要があります。同様に、次にクエリを実行するときは、列 E から H を非表示にする必要があります。
基本的には、列の非表示パターンを一般化するクエリです。
この点について、あなたの専門知識をお願いします。
以下の手順では、RunCount 値に 1 を渡すと列 A から D が非表示になり、値 2 を渡すと列 E から H が非表示になり、値 3 を渡すと列 I から L が非表示になります。 .
Public Sub HideColumns(RunCount As Integer, TargetSheet As Worksheet)
Dim rngHide As Range
Dim ColOffset As Integer
' Initialise rngHide to columns A to D of the target worksheet.
Set rngHide = TargetSheet.[A:D]
' Calculate the offset from column A to the first column _
that needs to be hidden, update rngHide if required.
ColOffset = (RunCount - 1) * 4
If ColOffset > 0 Then
Set rngHide = rngHide.Offset(0, ColOffset)
End If
' Hide the columns.
rngHide.ColumnWidth = 0
End Sub
特定の列のみを非表示にする場合は、次の行を変更します。
Set rngHide = TargetSheet.[A:D]
たとえば、最初と最後の列のみを非表示にするには (列 AとD、列 EとH など):
Set rngHide = TargetSheet.[A:A, D:D]
最初の 2 列のみを非表示にするには:
Set rngHide = TargetSheet.[A:B]