日付範囲内にない列を非表示にする(Microsoft Excel)
Jasonには、いくつかの列を含むワークシートがあり、各列は彼の会社の会計週を表しています。これらの会計週は列Gで始まり、列Hが第2会計週、列Iが第3週というように続きます。 Jasonは、実行時に今日の日付を調べ、その日付に基づいて会計週を計算し、指定された範囲内にない会計週の列を非表示にするマクロを作成したいと考えています。
答えを提供するために、表示したい範囲は13週間(4分の1)に等しいと仮定します
現在の会計週の直前。これを念頭に置いて、マクロで実行する必要のあることがいくつかあります。まず、現在の会計週を決定する必要があります。次に、この現在の会計週の前の13週間以外のすべての週を非表示にし、すべての週を再表示する必要があります。
これは、現在の会計週を把握することを除いて、すべて比較的簡単に実行できます。会計週の決定方法は、会社によって大きく異なります。ただし、簡単にするために、決定はかなり簡単であると仮定します。1年の日を7で割り、私たちが何を持っているかを確認します。
次のマクロは、これまでに説明したアプローチを実装しています。
Sub HideWeeks() Dim BeginYear As Date 'start of fiscal year date Dim FirstWeekCol As Integer 'first fiscal week column Dim FirstShowWkCol As Integer 'first column to show Dim CurrWkCol As Integer 'current week column Dim J As Integer BeginYear = Cells(1, 1).Value FirstWeekCol = 7 'fiscal weeks begin with Col 7 (G) 'Calculate Column of the current fiscal week CurrWkCol = ((Date - BeginYear) \ 7) + FirstWeekCol - 1 'Calculate column of the first week to show FirstShowWkCol = CurrWkCol - 14 If FirstShowWkCol < FirstWeekCol Then FirstShowWkCol = FirstWeekCol End If Application.ScreenUpdating = False 'Unhide all columns Columns("G:IV").Hidden = False 'Unhide all week Columns 'Hide week column before the rolling quarter For J = FirstWeekCol To FirstShowWkCol Columns(J).Hidden = True Next J 'Hide week column after current week For J = CurrWkCol + 1 To 256 Columns(J).Hidden = True Next intCol Application.ScreenUpdating = True End Sub
このマクロのワークシートから取得する必要のある値が1つあることに注意してください。それは、前年の最終日です。これはセルA1にあると想定され、取得されてBeginYear変数に配置されます。この値は、現在の年の日を決定するために使用されます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(3261)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link日付範囲内にない列を非表示にする。