Excel VBAで表から’-‘だけの列を削除する方法

Excelのデータ整理において、データが’-‘で埋め尽くされた列は不要なことがよくあります。このような列を自動で削除する方法をVBAを使って簡単に実現する方法を解説します。


目次

前提条件

このコードを利用する前提条件は以下の通りです。

  1. 表の範囲:
    • 削除対象の列が特定の範囲に収まっていること(例: 列5から11まで)。
    • 行範囲も決まっている(例: 7行目から13行目)。
  2. 削除の条件:
    • 列のすべてのセルが'-'の場合にのみ削除されます。
  3. 実行環境:
    • VBAが有効になっている(マクロが許可されている)。

‘-‘だけの列を削除するVBAコード

以下は、表から'-'で構成された列を削除するためのVBAコード例です。

コード

Sub DeleteDashColumns()
    Dim outputSheet As Worksheet
    Dim startRow As Long
    Dim lastRow As Long
    Dim startCol As Long
    Dim lastCol As Long
    Dim col As Long
    Dim row As Long
    Dim deleteFlag As Boolean

    ' 出力シートを設定
    Set outputSheet = ThisWorkbook.Sheets("対象のシート名") ' シート名を適宜変更

    ' 行範囲を設定
    startRow = 7 ' 開始行
    lastRow = 13 ' 終了行

    ' 列範囲を設定
    startCol = 5 ' 開始列
    lastCol = 11 ' 終了列

    ' 列を逆順にチェックして削除
    For col = lastCol To startCol Step -1
        deleteFlag = True ' 削除フラグを初期化

        ' 指定範囲内のすべての行を確認
        For row = startRow To lastRow
            If outputSheet.Cells(row, col).Value <> "-" Then
                deleteFlag = False ' '-'以外の値が見つかった場合、削除しない
                Exit For
            End If
        Next row

        ' 削除フラグがTrueの場合、列を削除
        If deleteFlag Then
            outputSheet.Columns(col).Delete
        End If
    Next col
End Sub

コードの解説

1. 対象シートの設定

Set outputSheet = ThisWorkbook.Sheets("対象のシート名")

削除対象の表が含まれるシートを指定します。"対象のシート名"を適宜変更してください。


2. 行範囲と列範囲の指定

startRow = 7
lastRow = 13
startCol = 5
lastCol = 11
  • startRowlastRowで行の範囲を指定します。この例では7~13行目が対象です。
  • startCollastColで列の範囲を指定します。この例では5~11列目が対象です。

3. 列を逆順に処理

For col = lastCol To startCol Step -1

列を右から左(逆順)に処理する理由は、削除後に列番号がずれる問題を防ぐためです。


4. 列内のセルの判定

For row = startRow To lastRow
    If outputSheet.Cells(row, col).Value <> "-" Then
        deleteFlag = False
        Exit For
    End If
Next row

指定された行範囲内のすべてのセルが'-'である場合にのみ、その列を削除します。


5. 列の削除

If deleteFlag Then
    outputSheet.Columns(col).Delete
End If

deleteFlagTrueの場合、対象の列を削除します。

まとめ

このVBAコードを使えば、表から'-'だけの不要な列を簡単に削除できます。データ整理やクリーニングの作業を効率化するのに役立ちます。ぜひお試しください。

技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。

プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。

気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。

[Kindle Unlimited 読み放題プランをチェックする]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次