• ベストアンサー

エクセルの空白セルの詰め方・・・

行数2000・桁数50の範囲に任意の値が入っています。 ただそのなかには空白セルも混じっています。 各桁毎に空白セルを詰めたいのですが、ひたすらカット&ペーストしかないのでしょうか? 効率的な方法がありましたら是非教えてください。 よろしくお願いします。

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

  • ベストアンサー
回答No.5

> 行数2000・桁数50の範囲に任意の値が入っています 私も桁=列(A,B,C,…)だと思っての回答ですが、 その範囲をすべて選択状態にして、[編集]-[ジャンプ] の [セル選択] から 空白セル を 指定して [OK] します。 指定範囲の空白セルだけが選択されますので、[編集]-[削除] あとは、皆さんがおっしゃっているように「左方向にシフト」です。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

行数2000・桁数50(行数50のこと?)の範囲を指定 (やり方は、A1をクリックし、後にShiftキーを押しながら50列目の2000行目をクリック)。 編集-ジャンプ-「セル選択」ボタンをクリック- 「空白セル」にチェックを入れる-OKをクリック。 結果は空白セルが黒くなる。 編集-削除-「左方向にシフト」をクリック-OKをクリックで全て一斉に左へ詰められます。

  • inte-nori
  • ベストアンサー率48% (33/68)
回答No.6

#4です。たびたびすみません。 問題をよく読んだら、各桁毎って書いてありましたね。 その場合は貼り付けるコードは下記のようになります。 Sub 空白削除()   For i = 1 To 50     For j = 2000 To 1 Step -1       If Cells(j, i).Value = "" Then         Cells(j, i).Delete Shift:=xlUp       End If     Next   Next End Sub でも、#5さんの方法の方が簡単で確実ですね。失礼しました。

  • inte-nori
  • ベストアンサー率48% (33/68)
回答No.4

1.「ツール」>「マクロ」>「Visual Basic Editor」を開きます。 2.「挿入」>「標準モジュール」を実行し、右側に表示されたウィンドウに下記のコードを貼り付けます。 Sub 空白削除()   For i = 50 To 1 Step -1     For j = 1 To 2000       If Cells(j, i).Value = "" Then         Cells(j, i).Delete shift:=xlToLeft       End If     Next   Next End Sub 3.画面下のタスクバーでエクセルの画面に戻します。 4.「ツール」>「マクロ」>「マクロ」を実行し、「空白削除」を選択して[実行]を押します。 若干時間がかかるかも知れませんが、以上の手順で出来ると思います。 ただし、スペースが入力されているセルは削除出来ませんので、注意してください。 作業が終了したら、タスクバーでVisual Basic Editorに切り替えて、左上の画面の「標準モジュール」の中の「Module1」を右クリック>「Module1の解放」>ボックスが出るので「いいえ」で、上記のコードを削除出来ます。

  • syuyama
  • ベストアンサー率34% (72/209)
回答No.3

各列ごとにってことですか? 空白セルは列ごとに違う行に 空白が混ざっているのですか? 空白の量は結構なものですか? 列が同じなのであれば、 1列目にオートフィルタをかけて (空白セル)を選択して一気に何行も削除。 順番が並び変わってもいいのであれば、 全ての範囲を並び替えをすれば空白が一番下に来るので一気に削除。 いかがですか?

回答No.2

空白も含めて範囲指定して、ソート。

  • goomika
  • ベストアンサー率26% (66/251)
回答No.1

各桁ごとに・・・、って言うのがわかりませんが・・。 空白のセルを左とか上とかにつめていきたいって 事でよいですかぁ? それだったら、空白のセルで、右クリック→ 削除  そうすると、「左方向にシフト」 「上方向にシフト」って出ますので、どちらかと 選択すると一度のつまってきますよん。