毎日のシフト用のワークシートコピーの作成(Microsoft Excel)
ライアンは、毎日3シフトごとに使用する必要のあるExcelワークシートを持っています。彼は、シフトごとに、毎日、何度もこのワークシートのコピーを作成します。ライアンは、マスターワークシートを1か月に1日3回コピーして、ワークシートに「2月1日シフト1」、「2月1日シフト2」という名前を付けることができるマクロがあれば便利だと思われます
など。彼はこのようなことをするためのマクロを見つけることができず、誰かが助けてくれるかどうか疑問に思っていました。
これは、実際にはマクロとしてまとめるのにそれほど時間はかかりません。秘訣は、マクロがマスターワークシートを目的の月の1日3回コピーする必要があることを覚えておくことです。これは、マクロが1か月の日数を決定する必要があることも意味します。これがわかったら、実際の作成プロセスを処理するために、ネストされた2つのFor … Nextループを設定できます。
Sub CopyShiftSheets() Dim iDay As Integer Dim iShift As Integer Dim iNumDays As Integer Dim wMaster As Worksheet Dim sTemp As String iMonth = 2 ' Set to month desired, 1-12 iCurYear = Year(Now()) iNumDays = Day(DateSerial(iCurYear, iMonth + 1, 0)) Set wMaster = Worksheets("Master") 'change to name of master For iDay = 1 To iNumDays For iShift = 1 To 3 sTemp = MonthName(iMonth) & " " & iDay & " Shift " & iShift wMaster.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = sTemp Next iShift Next iDay End Sub
目的の月(この場合は2月)がiMonth変数に割り当てられ、iCurYearが現在の年に設定されていることに注意してください。次に、その月と年の日数が計算され、iNumDaysに格納されます。
2つのFor … Nextループは、毎日および各シフトを通過し、マスターワークシートをコピーして名前を変更します。完了すると、ワークブックに必要なすべてのワークシートが正しく名前が付けられます。ただし、同じ月にマクロを2回実行しないように注意する必要があります。
これを行うと、ワークブックに重複した名前のワークシートがあるため、エラーが生成されます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(13730)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。