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

副業から独立まで「稼げる」Webスキルを習得する(PR)

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

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

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

この記事を書いた人

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

目次