• ベストアンサー

一括でセル削除 VBA エクセル

B1からZ100にランダムに値(文字や数字)が入ってます。このうち、空白セルを削除して左に寄せたいのですが、VBAで一括でできますでしょうか?

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! すでに的確な回答が出ていますので、余計なお世話になるかもしれませんが・・・ 万一空白セルがない場合、エラーになりますのでそれに対処するコードです。 Sub Sample1() On Error Resume Next '←念のため Range("B1:Z100").SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft End Sub ※ 全くデータの入力がない場合のセルが対象です。 数式などによって「空白」になっている場合は上記コードでは対応できません。 その場合のコードは↓のような感じではどうでしょうか? Sub Sample2() Dim c As Range, myRng As Range Set myRng = Range("B1:Z100").Find(what:="", LookIn:=xlValues, lookat:=xlWhole) If Not myRng Is Nothing Then For Each c In Range("B1:Z100") If c = "" Then Set myRng = Union(myRng, c) End If Next c myRng.Delete shift:=xlToLeft End If End Sub 横から失礼しました。m(_ _)m

yuu1236
質問者

お礼

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

その他の回答 (1)

noname#203940
noname#203940
回答No.1

VBAで行う理由があるのですね。 Sub Macro1() Range("B1:Z100").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Delete Shift:=xlToLeft Range("A1").Select End Sub でお望みの結果になります。 最後にA1セルを選択していますが、好みで削除してください。 やっていることは 1.範囲を選択 2.F5で「ジャンプ」ダイアログを表示 3.空白セルを選択 4.選択した空白セル左詰で削除 をマクロの記録で記録しただけです。

yuu1236
質問者

お礼

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

関連するQ&A

  • Excelで前後に紛れ込んでいる空白を一括で削除したいです。

    Excel2003使用者です。 セル内の文字で、その前後に空白があるものが含まれています。 その空白をシート内で一括で削除する方法を教えて下さい。 削除したいのは前後の空白のみで、文字間の空白はそのままです。 (もし前に空白があれば、文字は左詰めされる) つたない説明でお分かりでしょうか? よろしくお願いします。

  • EXCEL VBA (変更セル値の値をとる)

    「A1セルからJ1セル」にランダムに数字が入っていたとします。 A1セルからH1セルのどこかの数字を変更した場合、その数字が変更したセルからJ1セルまで同じ数字になるようにしたいです。 たとえば、A1からJ1セルに1~10の数字をいれ、B1セル値の2を5に変更した場合、B1セルからJ1セルまでの値が全て5になるようにしたいです。 これはVBAで可能ですか? すいませんが宜しくお願いします。

  • Excel VBA   %の入ったセル

    困りました、、、 VBAを使って A×30%+15000 これが入ったセルB2と たとえば250000が入ったセルB2を掛け算したいのですが (B2の数字は固定ではなくいろいろな数字が入ります) 文字列が入っていることにより うまくいきません 今は仕方なくMid関数で数字を抜き出して使っているのですが なにかよい方法はないでしょうか よろしくお願いします<m(__)m>

  • VBAで色の付いているセルの行削除

    VBAで色の付いているセルの行を削除することは出来ないでしょうか? 量が多すぎて一つ一つ削除すのは大変で間違えて削除してしまいそうなので・・・ - 文字または数字 ■ 色の付いたセル(赤)  A B C D E F・・・ 1- - - - - - 2- - - - - - 3- - - ■ - - 4- - ■ - - - 5- - ■ - - - 6- - - - - - 7- - - ■ - - 8- - ■ - - - 9- - ■ - - - 10- - - - - -       ↓  A B C D E F・・・ 1- - - - - - 2- - - - - - 6- - - - - - 10- - - - - - よろしくお願いします。

  • エクセルで空白セルを寄せたい

    エクセル2002使用です VBAは使わずに関数だけで空白セルがあるセルを詰めて表示したいのですが・・・   A|B|C|D|E|F|G 1 あ い う え お か き 2 ○   ○ ○   ○ の表を   A|B|C|D|E|F|G 1 あ う え か  2 ○ ○ ○ ○ のように表を書き換えたいのです。 1行目には必ず文字が入力されています。 2行目には入力されているセルと空白セルが不定期に入力されています。 2行目のセルが空白ならば、1行目のセルも削除して左へ詰めて 表を転記したいのです。 よろしくお願いします。

  • VBA 行の削除

    全くの初心者で、初めて質問させていただきます。 A列には、数字・空白・文字を入力したセルが混在しています。 そのA列の数字の内 0 のセルが入力されている行のみを削除するVBAの記述の仕方を教えて下さい。 宜しく御願い致します。

  • Excel VBA セルの隣を参照し別セルに 代入

    Excel2003版でVBAを使い  検索と参照プログラムを組みたい ----------------------------------------- Sub Sample1() Dim FoundCell As Range Set FoundCell = Range("B55:B63").Find("1") If Not FoundCell Is Nothing Then MsgBox FoundCell.Offset(0, -1) End If End Sub ------------------------------------------- ↑VBAプログラム参照↑ ・B55~B63セル内の中から(1)の 数字があるセルを探し更に検索してヒット したセルの左セルの内容を メッセージボックスに表示させると ゆうやり方です。 この内容を あるセル 例えば"E17"セルに代入させたい場合 やりたいこととしまして、 ○----------------------------------------------------------○ E17セルの内容を空白にした後 Calculateを使い ランダムシャッフルし、 B55~B63セル内の中から(1)の 数字があるセルを探し更に検索してヒット したセルの左セルの内容をE17に入力(代入又は参照でも可)させたい ○---------------------------------------------------------○ 場合はどのようにプログラムを組めばよろしいですか? 無知で愚かな私ですが 恥を忍んでご教授頂けませんか よろしくお願いします(人>д<*ペコ謝)

  • Excel VBA 決まった文字以外を一括削除

    勤務表を作成しています。 赤いセル「/。」は、希望休です。 勤務表の組み直しを行うため、希望休以外を一括で削除して空白にしたいのですが、そのようなマクロを組む事はできますか? 色で判別するよりも、入力してある文字「/。」で判別して、それ以外に入力してある文字を削除できるようにしたいです。

  • エクセルのセル内の文字を削除するには?

    B列のセルの一つが「1900/5/13」となってしまいました。 たぶん、A列は日付けなのでB列はそうではないのですが、操作を誤ったのだと思います。 削除して、他の数字を入れたいのですが、削除しても また「1900/5/13」となります。 空白にして他の数字を入力するにはどうすればいいでしょうか?

  • エクセルVBAで関数が入った空白セルの取得

    エクセルVBAで下記のようなセルの参照をしたいのですが、よろしくお願いします。(エクセル2002です)   A  B  C  D  E  F 1 78 80 セル(A1)(B1)には値も関数も入れられています。 セル(C1)(D1)(E1)には値は入っていませんが、ワークシート関数が組み込まれており空白となっています。(関数の""にて空白) セル(F1)には何も入力されていません。 今回はセル(B1)の80の値を取得できるようにVBAで下記のようにコードを組みました。 Range("F1").End(elToLeft).Activate そうすると、セル(E1)に関数があるために(?)(E1)がアクティブな状態となります。 関数が入力されていても空白として(B1)をアクティブな状態にするために良い方法はありますでしょうか? 誠に申し訳ございませんが、よろしくお願いします。

専門家に質問してみよう