一覧には、Microsoft ExcelでVBAを使用して、設定された期間に数ヶ月の日数を追加し、
この記事では、定義された期間の間の月とその特定の月の日数を一覧表示するマクロを作成します。また、定義された期間の間の合計日数も表示されます。
月と月の日数を一覧表示する「DaysInPeriod」マクロを作成しました。 「送信」ボタンをクリックするとマクロを実行できます。
マクロを実行する前に、開始日と終了日の入力を提供する必要があります。セル「G6」の値を開始日、セル「G7」の値を終了日とします。出力は下の「F9」セルに表示されます。
[送信]ボタンをクリックすると、マクロのF列に月の名前が表示され、G列にその月の日数が表示されます。最後の行には、指定した期間の合計日数が表示されます。
ロジックの説明
マクロでは、開始日から指定された終了日までループを開始します。ループしている間、月の最後の日付をチェックします。月の最終日が検出されると、その月の名前とその月の日数が列FとGに表示されます。同様に、終了日もチェックします。終了日が来ると、先月のエントリとその月の日数が表示されます。
コードについては以下に従ってください
Option Explicit Sub DaysInPeriod() Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Clearing previous content Range("F10:G1048576").ClearContents 'Getting start and end date StartDate = Range("G6") EndDate = Range("G7") 'Initializing the variable to starting row number intRow = 10 'Listing the months and number of days from starting date to end date Do intDays = intDays + 1 'Checking for last date of the month or when StartDate is equal to EndDate If (Month(StartDate) <> Month(StartDate + 1)) Or StartDate = EndDate Then 'Inserting the month name Cells(intRow, 6) = Format(StartDate, "mmmm") 'Inserting number of days in the month Cells(intRow, 7) = intDays 'Moving to next row intRow = intRow + 1 intDays = 0 End If 'Moving to next date StartDate = StartDate + 1 Loop Until StartDate > EndDate 'Getting the sum in the last row Cells(intRow, 6) = "Total Days" Cells(intRow, 7) = Application.Sum(Range("G10:G" & intRow)) End Sub
このブログが気に入ったら、FacebookやFacebookで友達と共有してください。
皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください