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 J

Application.ScreenUpdating = True End Sub

このマクロのワークシートから取得する必要のある値が1つあることに注意してください。それは、前年の最終日です。これはセルA1にあると想定され、取得されてBeginYear変数に配置されます。この値は、現在の年の日を決定するために使用されます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(9550)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。