OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

Excell VBA:dataに空白行を挿入したい。

  • 困ってます
  • 質問No.110509
  • 閲覧数676
  • ありがとう数4
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 85% (41/48)

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

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

 を
1 t1  **  **

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

6 t3  **  **

8 t4

 にしたい。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル13

ベストアンサー率 68% (791/1163)

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

ということなので補足しておきます。下記マクロで不定行数でも大丈夫です。
また、元の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
お礼コメント
telmi

お礼率 85% (41/48)

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

 ありがとうございました。
投稿日時 - 2001-07-30 10:54:18
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

こんな感じですか。 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 ...続きを読む
こんな感じですか。

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
お礼コメント
telmi

お礼率 85% (41/48)

毎度ありがとうございます。
投稿日時 - 2001-07-30 11:09:26
  • 回答No.2
レベル14

ベストアンサー率 33% (1403/4213)

telmiさん、おはようございます。 前回のご質問の反対ですね。 行番号を削除しなければ、簡単なのに・・・。 (行番号ソートでもとに戻ったはずですよ) 行番号を付与しない方法です。 [データ]-[集計]を利用します。 1.見出し行を追加します。 2.[データ]-[集計]をクリックします。 3.[グループの基準]にtの値の列を指定します。 4.[集計の方法]は合計でもデータの個 ...続きを読む
telmiさん、おはようございます。
前回のご質問の反対ですね。

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

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

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

えいやっ!で実現する、姑息な手段です。
お礼コメント
telmi

お礼率 85% (41/48)

返事、遅れてすいません。
なるほど。
そんなやりかたが、あるんですね。
面倒ですがそれで、できますね。
参考になりました。
 ありがとうございました。
投稿日時 - 2001-07-30 11:01:51
  • 回答No.3
レベル11

ベストアンサー率 33% (131/392)

VBAで解らない時は、マクロを新規に作成して、そのプログラムを編集で見ると解ります。 やり方はお分かりと思いますが、念のため書いておきます。 「1行を挿入するマクロ」です。 1.「ツール」「マクロ」「新しいマクロの記録」を順にクリックしていきます。 2.「ショートカットキー」を入力して、「OK」 3.「行番号」をクリックして、 4.「挿入」「行」をクリック 5.「マクロ終了ボタン」をクリ ...続きを読む
VBAで解らない時は、マクロを新規に作成して、そのプログラムを編集で見ると解ります。
やり方はお分かりと思いますが、念のため書いておきます。
「1行を挿入するマクロ」です。

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

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

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

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

老婆心ながら・・・・
お礼コメント
telmi

お礼率 85% (41/48)

ありがとうございます。
そうやれば、簡単にできるんですね。
なにしろ、初心者なもので、
知りませんでした。
参考になりました。
 ありがとうございました。
投稿日時 - 2001-07-30 11:07:43
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ