こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

データはA列にしか無い状態で、
「■」がある行の直前に空白行を挿入するマクロは
どのように書けばよいのでしょうか?
ご教授のほどお願いします。

投稿日時 - 2009-12-19 23:12:53

QNo.5534571

すぐに回答ほしいです

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

>初めからマクロを組んだことがないので、

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

投稿日時 - 2009-12-19 23:48:15

お礼

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

投稿日時 - 2009-12-20 00:35:46

ANo.1

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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

投稿日時 - 2009-12-20 00:26:00

お礼

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

投稿日時 - 2009-12-20 00:35:21

あなたにオススメの質問