Excelで空白の列を削除する方法

  • これを共有
Michael Brown

このチュートリアルでは、マクロ、数式、ボタンクリックを使用して、Excelで空の列を削除する方法について説明します。

Excelで空の列を削除することは、マウスでクリックするだけでできることではありません。 2回クリックすることもできません。 ワークシートのすべての列を見直して、空の列を手動で削除することは絶対に避けたいことです。幸い、Microsoft Excelには非常に多くの機能があり、それらを使用することによって、空の列を削除することができます。どんな仕事にも対応できるクリエイティブな機能です。

    絶対に使ってはいけない空欄を素早く削除する方法

    Excelで空白を削除する場合(空のセル、行、列のいずれであっても)、多くのオンラインリソースは、以下のものに依存しています。 スペシャルへ > ブランク コマンドを使用します。 絶対にしてはいけないこと をワークシートに書いてください。

    この方法( F5 > 特別な... > ブランク ) が見つかり、選択されます。 すべて空のセル を範囲とする。

    ここで、選択されたセルを右クリックして、次のように選択すると 削除 > コラム全体 を含むすべての列が表示されます。 少なくとも1つの空白セル が失われてしまいます!うっかりしてしまった場合は、Ctrl + Zですべて元に戻せます。

    Excelで空白の列を削除する間違った方法がわかったところで、正しい方法を確認しましょう。

    VBAでExcelの空白列を削除する方法

    経験豊富なExcelユーザーは、手作業で何時間も無駄にすることなく、数分を費やして自動的にそれを行ってくれるマクロを作成する、という経験則を知っています。

    以下のVBAマクロは、選択範囲内のすべての空白列を削除します。 しかも、完全に空の列のみを安全に削除します。 列にセルの値が1つでも含まれていれば、たとえ数式が返す文字列が空でも、その列はそのまま残ります。

    Excelマクロ:Excelシートから空の列を削除 Public Sub DeleteEmptyColumns() Dim SourceRange As Range Dim EntireColumn As Range On Error Resume Next Set SourceRange = Application.InputBox( _ "Select a range:" , "Delete Empty Columns" , _ Application.Selection.Address , Type :=8) If Not (SourceRange Is Nothing ) Then Application.ScreenUpdating = False For i = SourceRange.Columns.Count To 1Step -1 Set EntireColumn = SourceRange.Cells(1, i).EntireColumn If Application.WorksheetFunction.CountA(EntireColumn) = 0 Then EntireColumn.Delete End If Next Application.ScreenUpdating = True End If End Sub

    空欄削除マクロの使い方

    以下は、マクロをExcelに追加する手順です。

    1. Alt + F11キーを押して、Visual Basic Editorを起動します。
    2. メニューバーで インサート > モジュール .
    3. 上記のコードをコードウィンドウに貼り付けます。
    4. F5キーを押して、マクロを実行します。
    5. ポップアップダイアログが表示されたら、目的のワークシートに切り替えて、目的の範囲を選択し、「OK」をクリックします。

    ワークシートにマクロを追加したくない場合は、サンプルワークブックからマクロを実行することができます。 その方法は次のとおりです。

    1. Excelの空白列を削除する」サンプルワークブックをダウンロードし、開き、プロンプトが表示されたらコンテンツを有効にします。
    2. 自分のワークブックを開いたり、すでに開いているワークブックに切り替えたりすることができます。
    3. ワークブックで、Alt + F8 キーを押しながら DeleteEmptyColumns マクロを実行し 実行 .
    4. ポップアップダイアログで、範囲を選択し よっしゃー .

    いずれにせよ、選択された範囲内のすべての空の列は処分されます。

    Excelで空白の列を特定し、数式で削除する

    上記のマクロは、空の列をすばやく静かに削除します。 しかし、(私のように)「すべてを管理する」タイプの人は、削除される列を視覚的に確認したいと思うかもしれません。 この例では、まず数式を使って空の列を確認し、それらの列のすべてまたは一部を削除することができるようにします。

    注:何かを永久に削除する前に、特に未知のテクニックを使って、強くお勧めするのは バックアップコピー は、何か問題が発生したときのために、念のためワークブックの

    バックアップコピーを安全な場所に置いた状態で、次の手順を実行します。

    ステップ1.新しい行を挿入する

    テーブルの最上部に新しい行を追加します。 このためには、最初の行のヘッダーを右クリックし インサート この行は後で削除できますので、データの構造/配置がおかしくなる心配はありません。

    ステップ2.空欄の特定

    新しく追加された行の一番左のセルに、次の数式を入力します。

    =COUNTA(A2:A1048576)=0

    そして、塗りつぶしハンドルをドラッグして、他の列に数式をコピーします。

    この式のロジックは非常にシンプルで、COUNTAは列内の空白セルの数を、Excel 2019 - 2007の最大行である2行目から1048576行目までチェックします。 その数をゼロと比較し、結果として空白列にはTRUE、少なくとも1つの非空白セルを含む列にはFALSEを設定します。 相対セル参照を使っているため、式は各列に対して適切に調整されます。がコピーされる場所。

    他の人のためにワークシートを設定する場合、より意味のある方法で列にラベルを付けたいと思うかもしれません。 問題ありません、これは次のようなIF文で簡単に行うことができます。

    =IF(COUNTA(A2:A1048576)=0, "空白", "空白でない")

    これで、どの列が空で、どの列が空でないかが数式で明示されるようになりました。

    補足:マクロと比較して、どの列を空白とみなすか、より柔軟に設定できます。 この例では、ヘッダー行を含むテーブル全体をチェックします。 つまり、ヘッダーのみを含む列は空白とはみなさず、削除しません。 データ行のみをチェックしたい場合は、次のようにします。 カラムヘッダの無視 のように、対象範囲(A3:A1048576)からヘッダー行を削除します。 その結果、ヘッダーがあって他のデータがない列は空白とみなされ、削除の対象となります。 また、最後に使用した行(この例ではA11)に範囲を限定することも可能です。

    ステップ3.空白の列を削除する

    適度な数の列があれば、最初の行に「空白」がある列を選択するだけです(複数の列を選択するには、Ctrlキーを押しながら列の文字をクリックします)。 次に、選択した列を右クリックし、次の操作を行います。 削除 をクリックすると、コンテキストメニューが表示されます。

    ワークシートに数十、数百の列がある場合、空の列をすべて表示させることは意味があります。 そのために、次のようにします。

    1. 数式のある一番上の行を選択し、[Select] ボタンをクリックします。 データ tab> ソートとフィルター をクリックします。 ソート ボタンをクリックします。
    2. 表示された警告ダイアログボックスで 選択範囲を拡大する をクリックします。 ソート...

    3. を開くことができます。 ソート をクリックすると、ダイアログボックスが表示されます。 オプション... ボタンで選択します。 左から順に並べると をクリックします。 よっしゃー .

    4. 下図のようにソートレベルを1つだけ設定し、「OK」をクリックします。
      • 並び替え: 1行目
      • ソート対象:セルの値
      • ご注文:A to Z

      その結果、空白の列はワークシートの左側に移動されます。

    5. すべての空白の列を選択する - 最初の列の文字をクリックし、Shiftキーを押した後、最後の空白の列の文字をクリックします。
    6. 選択した列を右クリックし 削除 をポップアップメニューから選択します。

    これで空白の列がなくなり、数式のある一番上の行を削除するのに邪魔になるものは何もなくなりました。

    Excelで空の列を削除する最速の方法

    このチュートリアルの冒頭で、Excelで空白の列をワンクリックで削除する方法はないと書きました。 実はそうではなく、内蔵の方法はないと言うべきでした。 究極スイートのユーザーは、文字通り数回のクリックでExcelの空白を削除できます :)。

    目的のワークシートで Ablebits Tools タブをクリックします。 ブランクの削除 を選択し 空のカラム :

    マウスを誤ってクリックしたのではないことを確認するために、アドインは、本当にそのワークシートから空の列を削除したいのかどうかを確認するよう求めます。

    クリック よっしゃー すると、一瞬で空白の列がすべてなくなりました。

    このツールは、前述のマクロと同様に、以下のカラムのみを削除します。 がら空き ヘッダーを含め、単一の値を持つ列は保持されます。

    ブランクの削除 さらに詳しい情報は、Ultimate Suite for Excelの体験版をダウンロードしてご覧ください。

    空白の列が削除されない! なぜ?

    課題 上記の方法をすべて試しましたが、1つまたは複数の空の列がワークシートで動かなくなりました。 なぜでしょうか?

    特に外部から情報を取り込んだ場合、人間の目には見えないさまざまな文字がExcelスプレッドシートの中に潜んでいることがあります。 それは単なる空文字列であったり、スペース文字、ノンブレイキングスペース、その他の非印刷文字であったりすることがあります。

    例えば、以下のスクリーンショットのC列は、C6に1つのスペース文字があるため、空白になっていません。

    セルをダブルクリックして中身を確認するか、Deleteキーを押して未知のものを取り除きます。 そして、上記のプロセスを繰り返して、その列に他の見えないものがあるかどうかを調べます。 また、先頭、末尾、および非改行スペースを削除してデータをきれいにしたい場合があります。

    読んでくださってありがとうございました!来週も当ブログをよろしくお願いします。

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。