• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ・VBAでの書類作成)

マクロ・VBAでの書類作成における進捗書類作成の困りごとと解決策

このQ&Aのポイント
  • マクロ・VBAを使用して書類作成において、週頭の年月を変更すると自動的に後続の週頭も変更されるようにする方法について、お助けいただけませんか。
  • また、週の数によって隔週の結合や月度合計の計算範囲がズレてしまう問題についても解決策を教えていただけないでしょうか。
  • さらに、末報告の年月のみが自動的に変更されるマクロの作成方法についても教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (789/1649)
回答No.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)
回答No.2

No1の訂正です。 "< " を "<= " に全て変更してください。

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.1

マクロではありませんが セルの結合はなくしてください。 報告のセルに =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にコピーして 試してみてください。 ””がコピーで全角になることがありますのでその場合は半角に修正してください。