• ベストアンサー

特定文字のある行の前に空白行を挿入したい

5000行ほどあるエクセルファイルで、 「■」の文字がある行の直前に空白行を挿入したいと思っています。 「■」のある行が1500行ほどあるので、 手作業は大変かと思い、マクロでやるのはどうかな?と おもったのですが、既存のマクロを少し修正することはあっても 初めからマクロを組んだことがないので、 どう書けばよいかわかりません。 データはA列にしか無い状態で、 「■」がある行の直前に空白行を挿入するマクロは どのように書けばよいのでしょうか? ご教授のほどお願いします。

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

  • ベストアンサー
  • popuplt
  • ベストアンサー率38% (31/81)
回答No.1

>初めからマクロを組んだことがないので、 一般機能でもできると思います。 検索で「■」[すべて検索] 下に検索されたセルが表示されるので [CTRL]+[A]を押して、すべて選択します。 最後の「■」にカーソルがあるので、そのセルで右クリック。 [挿入]をクリック。[行全体]を選択して[OK] いかがでしょう。

gao0000
質問者

お礼

ありがとうございます。 解決しました!

その他の回答 (1)

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.2

こんばんは。 すでに回答がでていますが、 参考までにサンプルコードを作ってみました。 '======標準モジュールに記述========================================= Sub test()   On Error GoTo Err_   Dim c As Object   Dim myKey As String   Dim myRange As Range   Dim UnionRange As Range   Dim fAddress As String      Set myRange = Range("A1", Cells(Rows.Count, "A").End(xlUp))   myKey = "■"      With myRange     Set c = .Find(What:=myKey, LookIn:=xlValues, lookat:=xlPart, _               SearchOrder:=xlByColumns, MatchByte:=False)     If Not c Is Nothing Then       fAddress = c.Address       Do         If UnionRange Is Nothing Then           Set UnionRange = c         Else           Set UnionRange = Union(c, UnionRange)         End If         Set c = .FindNext(c)         If c.Address = fAddress Then Exit Do       Loop     End If     UnionRange.EntireRow.Insert   End With Bye_:   Set myRange = Nothing   Set UnionRange = Nothing   Set c = Nothing   Exit Sub Err_:   MsgBox Err.Description, vbCritical   Resume Bye_ End Sub

gao0000
質問者

お礼

popupltさんの回答で解決しましたが、 わざわざありがとうございます。

関連するQ&A