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デザインやプログラミングで成功を目指している方々にとって、このオンラインスクールは夢を叶えるための最適な場所です。皆さんのキャリアを次の段階へと引き上げるためにデザインされたこのスクールは、一人ひとりの成功を心から願い、それを実現するための全てを提供しています。ここでは、このスクールの魅力について詳しくご紹介します。

◆圧倒的な費用対効果
このオンラインプログラミングスクールは、Web系教育において最高の費用対効果を提供しています。多くの高額スクールが存在する中で、ここではリーズナブルな価格で、質の高い教材、無限のサポート、そして実際に市場で求められるスキルの習得機会を提供しています。

◆現役フリーランスの講師陣
講師たちは全員、現役のフリーランスプロフェッショナルです。市場で活躍している講師から直接、最新のトレンドや実践的なスキルを学べるのは、このスクールの大きな特徴です。

◆柔軟な学習コース
固定のコースがなく、学習者の興味やニーズに応じて自由に学習できます。進路変更も自由で、最低契約期間は1ヶ月という柔軟性を持っています。自分のペースで、自分に合った学習が可能です。

◆無制限の添削とサポート
理解できるまで、そして満足するまで、無制限に添削と質問への回答を提供しています。進路相談や技術面以外の相談にも対応しており、全面的にサポートします。

◆社長から学べる貴重な機会
デザイナー、プログラマー、ディレクター、マーケターとして豊富な経験を持つ社長から直接学べるのも、このスクールの特別な点です。他のスクールでは得られない、貴重な機会です。

◆実績作りへの徹底的なサポート
就職、転職、フリーランスとして成功するためには、高品質な実績が必要です。生徒の作品レベルを最大限に高め、市場で求められる実績を作り上げることに力を入れています。案件を取得できない生徒には、直接案件を提供することもあります。

◆メッセージからの約束
高額な授業料を支払わせて結果を出せないスクールとは違い、物理的なサポートは提供できないかもしれませんが、継続的な努力を通じて最高の結果を出せるようにサポートします。一緒に不正なスクールを撲滅し、あなたの夢を実現しましょう。

このプログラミングスクールは、Webデザインやプログラミングでの成功を目指す方々に必要な全てを備えています。今こそ、このコミュニティに参加し、あなたのキャリアを加速させる時です。

詳しくはこちら↓

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

この記事を書いた人

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

目次