• ベストアンサー

空白セルをつめる。

エクセルです。 空白のセルがあるので上方向に詰めたいのですが、よい操作方法ありますか? この場合はVBAを使用したほうが良いですか? ctrl+Gで空白行を削除できるのは知っているのですが、 行を削除すると困るのでそれ以外の方法を探してます。 A1   A1 ×   ×        ×  ×   ×  ×  上のように、上方向へ詰めたいのです。

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

  • ベストアンサー
  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.1

×印の下のセルで右クリック→削除→上方向へシフト でできますよ。

morimorimori
質問者

補足

うまくいかないです。 範囲指定して、右クリック、削除、上方向へシフト すると、範囲指定したところが削除されていまいました。 ○×も消えてしまいました。 どうしてだろう。???

その他の回答 (5)

  • arikui
  • ベストアンサー率43% (52/120)
回答No.6

A1列をキーにして、データ並べ替えをすると、A1が空白の行が、先頭か最後に集まります。 もし現状の行の順番を変えたくなければ、列を挿入し、そこに1~の連番を入れた後、A1列をキーにして、データ並べ替えをします。 次に、A1列が空白の行を削除し、残りを行番号で並べ替えをします。 最後に、行番号の列を削除する、ということでできます。

morimorimori
質問者

お礼

こちらにまとめてお礼を記入させていただきます。 おかげさまで、うまくできました。またVBAは今後の参考にしたいと思います ありがとうございました。

  • AQUALINE
  • ベストアンサー率33% (18/53)
回答No.5

VBAならこんな感じでいかがでしょう? Sheet1のA列にデータがあるとして、とりあえずB列に空白をつめた状態で表示します。 データ最終行を100としてますが適当に直してください。B列がまずければ Cells(n, "B") のBをXでもYでも好きな列に変えてください。 Sub test() Dim i As Integer, n As Integer n = 1 With Sheets("Sheet1") For i = 1 To 100 If .Cells(i, "A") <> "" Then .Cells(n, "B") = .Cells(i, "A") n = n + 1 End If Next End With End Sub

  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.4

>範囲指定して、右クリック、削除、上方向へシフト >すると、範囲指定したところが削除されていまいました。 >○×も消えてしまいました。 消すところだけ、範囲指定をしないと全部消えてしまいます。 そういう機能なので…。 一度に全部というのでしたら複数範囲指定(Ctrlを使う)か、#2や#3の方の方法の方がいいと思います。

回答No.3

> ctrl+Gで空白行を削除できるのは知っているのですが、 > 行を削除すると困るのでそれ以外の方法を探してます。 A列を選択して、ctrl + G で空白セルを選んで 削除すればよいかと。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

VBAを使用したほうがいいと思います。

morimorimori
質問者

補足

VBAの場合はどんな記述になるか、ご存知でしょうか?

関連するQ&A