• ベストアンサー

エクセル VBA

既出でしたら、すみません。 方法を探して試行錯誤したうえで質問させていただきます。 添付の画像のように 1行目は見出しなので範囲外 2行目以降、A列をみて行を上に作り結合するといったものです。 どうにか、お力添えください。 宜しくお願いします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

ANo.1です。 1行目も結合セルの一部の場合、1行目に空白行を挿入しちゃいますね。失礼しました。 i = Cells(i, 1).MergeArea.Row の下に↓を追加して下さい。 If i = 1 Then Exit Sub

hide601113
質問者

お礼

お礼、お返事遅くなりまして申し訳ありません。 自分は、以下のように使用させていただいています。 ' A列を見て、行を追加 Range("A1").Select Dim i4 For i4 = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 i4 = Cells(i4, 1).MergeArea.Row Range(Cells(i4, 1), Cells(i4, 8)).Insert Shift:=xlDown Range(Cells(i4, 1), Cells(i4, 8)).Merge X% = Worksheets("印刷用").Columns(1).SpecialCells(xlLastCell).Row Worksheets("印刷用").Columns(5).SpecialCells(xlBlanks).Interior.Color = RGB(204, 255, 204) Next i4 ' ここまで ※実際はA列からH列まであったのでRange(Cells(i4, 1), Cells(i4, 8))にさせていただきました。 そして、データ最終行まで取得しBlankCell(空白セル)に色を付けてます。参考になるか判りませんが載せときます。 mt2008様、ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

こんな感じかな。 MergeArea を上手く使うのがポイントです。 Sub Sample()   Dim i   For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1     i = Cells(i, 1).MergeArea.Row     Range(Cells(i, 1), Cells(i, 5)).Insert Shift:=xlDown     Range(Cells(i, 1), Cells(i, 5)).Merge   Next i End Sub

すると、全ての回答が全文表示されます。

関連するQ&A