プロが教えるわが家の防犯対策術!

A列のデータが違うところで、空白を開けたいのですが、どうすればいいのでしょうか。よろしくお願いします。
データの行数は不定です。

1 t1  **  **
2 t2  **  **
3 t2   **  **
4 t3   **  **

 を
1 t1  **  **

3 t2  **  **
4 t2  **  **

6 t3  **  **

8 t4

 にしたい。

A 回答 (4件)

>データの行数は不定です



ということなので補足しておきます。下記マクロで不定行数でも大丈夫です。
また、元のA列の並びの中に未入力行があるとうまくいきません。下記では最初に未入力行を削除し、その後で行挿入を行っています。参考までに。

Sub GyoSonyu2()
  Dim rw As Long 'A列のセル
  Dim rwCount As Long 'A列の値が登録された最後の行番号

  Application.ScreenUpdating = False
  'A列のセルが未入力ならその行を削除
  rwCount = Range("A:A").SpecialCells(xlCellTypeLastCell).Row
  For rw = rwCount To 2 Step -1
    If Cells(rw, 1) = "" Then
      Rows(rw).Delete
    End If
  Next

  'A列でセルの値とその前のセルの値が違えばば行挿入
  rwCount = Range("A:A").SpecialCells(xlCellTypeLastCell).Row
  For rw = rwCount To 2 Step -1
    If Cells(rw, 1) <> Cells(rw - 1, 1) Then
      Rows(rw).Insert
    End If
  Next
  Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
返事、遅れてすいません。
みごとですね。
そのまま、使わせていただきます。
勉強になりました。

 ありがとうございました。

お礼日時:2001/07/30 10:54

VBAで解らない時は、マクロを新規に作成して、そのプログラムを編集で見ると解ります。


やり方はお分かりと思いますが、念のため書いておきます。
「1行を挿入するマクロ」です。

1.「ツール」「マクロ」「新しいマクロの記録」を順にクリックしていきます。
2.「ショートカットキー」を入力して、「OK」
3.「行番号」をクリックして、
4.「挿入」「行」をクリック
5.「マクロ終了ボタン」をクリックして終了です。

「マクロ記録終了」ボタンが表示されていないときは、「表示」「ツール」「記録終了」をクリックすると、表示されます。

つぎに、「ツール」「マクロ」「マクロ」「編集」で
プログラムが表示されます。

これを読むとどのようにプログラムすればよいかわかります。

老婆心ながら・・・・

参考URL:http://www2.odn.ne.jp/excel/index.html
    • good
    • 0
この回答へのお礼

ありがとうございます。
そうやれば、簡単にできるんですね。
なにしろ、初心者なもので、
知りませんでした。
参考になりました。
 ありがとうございました。

お礼日時:2001/07/30 11:07

telmiさん、おはようございます。


前回のご質問の反対ですね。

行番号を削除しなければ、簡単なのに・・・。
(行番号ソートでもとに戻ったはずですよ)

行番号を付与しない方法です。
[データ]-[集計]を利用します。

1.見出し行を追加します。
2.[データ]-[集計]をクリックします。
3.[グループの基準]にtの値の列を指定します。
4.[集計の方法]は合計でもデータの個数でもOK。
5.[集計するフィールド]の適当でOK。
6.ダイアログの[OKボタン]を押下。
7.集計表が表示されますから、左側に追加表示された集計レベル(正式名?)の
  「2」をクリックします。
8.グループの計の行だけが表示されますから、1行ごとに内容を消去してください。
  ここで一度にすべて消去すると肝心のデータも消えます。
  必ず1行ごとに消去してください。
9.集計レベル(正式名?)の「3」をクリックします。
  各グループの計の行が「空白行」となりました。
10.シート全体をコピーし、別シートに[形式を選択して貼り付け]-[値]でOK。

えいやっ!で実現する、姑息な手段です。
    • good
    • 0
この回答へのお礼

返事、遅れてすいません。
なるほど。
そんなやりかたが、あるんですね。
面倒ですがそれで、できますね。
参考になりました。
 ありがとうございました。

お礼日時:2001/07/30 11:01

こんな感じですか。



Sub GyoSonyu()
  Dim rw As Long

  For rw = 4 To 2 Step -1
    If Cells(rw, 1) <> Cells(rw - 1, 1) Then
      Rows(rw).Insert
    End If
  Next
End Sub
    • good
    • 0
この回答へのお礼

毎度ありがとうございます。

お礼日時:2001/07/30 11:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!