• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBAで一定ルールでの行追加)

ExcelVBAで一定ルールでの行追加

このQ&Aのポイント
  • ExcelVBAを使用して、指定のルールに基づいて行を追加する方法について教えてください。
  • ある表において、特定の条件を満たさない行を取得し、追加するExcelVBAのコードを作成したいです。
  • ExcelVBAを使って、表の欠損データを補完する方法について教えてください。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

1行目は項目名(性別、年代、数、数2、数3) データは2行目からとしています。 参考に Sub Test()   Dim myDic As Object   Dim LastRow As Long   Dim Str As Variant   Dim i As Long, j As Long   Set myDic = CreateObject("Scripting.Dictionary")   LastRow = Cells(Rows.Count, "A").End(xlUp).Row   For i = 2 To LastRow     Str = Cells(i, "A").Value & ";" & Cells(i, "B").Value     myDic(Str) = Empty   Next   For i = 1 To 2     For j = 40 To 100 Step 5       Str = i & ";" & j       If Not myDic.Exists(Str) Then         LastRow = LastRow + 1         Cells(LastRow, "A").Value = i         Cells(LastRow, "B").Value = j         Cells(LastRow, "C").Resize(, 3).Value = 0       End If     Next   Next   Range("F2:F" & LastRow + 2).FormulaR1C1 = "=SUM(RC[-3]:RC[-1])"   With Cells(LastRow + 1, "A")     .Value = 1     .Offset(, 1).Value = "男性計"     .Offset(, 2).Resize(, 4).FormulaR1C1 = "=SUM(R[-13]C:R[-1]C)"   End With   With Cells(LastRow + 2, "A")     .Value = 2     .Offset(, 1).Value = "女性計"     .Offset(, 2).Resize(, 4).FormulaR1C1 = "=SUM(R[-13]C:R[-1]C)"   End With   Range("A2:F" & LastRow + 2).Sort _   Key1:=Range("A2"), Order1:=xlAscending, _   Key2:=Range("B2"), Order2:=xlAscending, _   Header:=xlNo   Set myDic = Nothing End Sub

minminwamidori
質問者

お礼

遅くなりまして申し訳ありませんでした。ありがとうございました。

関連するQ&A