- ベストアンサー
マクロ・VBAでの書類作成における進捗書類作成の困りごとと解決策
- マクロ・VBAを使用して書類作成において、週頭の年月を変更すると自動的に後続の週頭も変更されるようにする方法について、お助けいただけませんか。
- また、週の数によって隔週の結合や月度合計の計算範囲がズレてしまう問題についても解決策を教えていただけないでしょうか。
- さらに、末報告の年月のみが自動的に変更されるマクロの作成方法についても教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
セルの結合をしなければ、関数と条件付き書式で可能ですね。 Option Explicit ' Sub Macro1() Dim ColF As Integer Dim ColT As Integer Dim DateF As Long Dim DateT As Long Dim Row As Long ' Cells.UnMerge ColF = 3 [5:5,7:7,9:9,11:11].ClearContents ' For ColT = 3 To Cells(3, Columns.Count).End(xlToLeft).Column + 1 DateF = Cells(3, ColF) DateT = Cells(3, ColT) ' If Month(DateF) <> Month(DateT) Or Cells(ColT) > "" Then Cells(2, ColF).Resize(, ColT - ColF).Merge Cells(2, ColF) = Format(DateF, "YY年MM月末報告") ' For Row = 5 To 11 Step 2 Cells(Row, ColF).Resize(, ColT - ColF).Merge Cells(Row, ColF).FormulaR1C1 = _ "=MAX(R[-1]C:R[-1]C[" & ColT - ColF - 1 & "])" Next Row ColF = ColT End If Next ColT End Sub
その他の回答 (2)
- kkkkkm
- ベストアンサー率66% (1742/2617)
No1の訂正です。 "< " を "<= " に全て変更してください。
- kkkkkm
- ベストアンサー率66% (1742/2617)
マクロではありませんが セルの結合はなくしてください。 報告のセルに =TEXT(D3,"yy") & "年" & MONTH(D3) & "月末報告" として必要なところにコピーします。 D2に =C3+7 として右に必要なだけコピーします。 条件付き書式で B2からO11まで選択して 数式を適用して・・・で数式を =MONTH(C$3)<>MONTH(D$3) として 書式の罫線を右で設定します。 D5に =MAX(OFFSET(C4,0,0,1,COUNTIF($C$3:$O$3,"< " & EOMONTH(C3,0)))) H5に =MAX(OFFSET($C$4,0,COUNTIF($C$3:$O$3,"< " & EOMONTH(D3,0)),1,COUNTIFS($C$3:$O$3,"< " & EOMONTH(H3,0),$C$3:$O$3,"> " & EOMONTH(H3,-1)))) H5をM5にコピーして 試してみてください。 ””がコピーで全角になることがありますのでその場合は半角に修正してください。