タイトル列を検索して、指定したタイトルと一致した列は削除します。
カンマ区切りで複数タイトルを指定できます。
消すのと反対に、タイトル列を検索して指定した列を残す 処理もあります。
【例】
処理パラメータ

実行前の「工業データ」

実行後の「工業データ」

以下の関数を使用していますので、リンクから関数をコピーします。
・ファイルの有無を確認する IsFileExists()
・タイトル列の検索 TitlenameToColumn(), TitlenameToColumnStr()
・列名と列番号の変換 ColumnIdxToStr()
・最終列を取得(最右端から) GetLastColumn()
・ナンバリングしたファイル名を作成する FilenameAddNumber()
Sub DelSpecifiedTitle(filename As String, title As Variant)
Dim wb As Workbook
Dim ws As Worksheet
Dim last_column As Long
Dim idx As Long
Dim result As String
Dim new_filename As String
Dim ret_long As Long
Dim ret_str As String
' ファイルの確認
If IsFileExists(filename) = True Then
' ブックを開く
Set wb = Workbooks.Open(filename)
' シートを取得
Set ws = wb.Sheets(1)
For idx = LBound(title) To UBound(title)
' タイトル名から列名を取得
result = TitlenameToColumnStr(ws, CStr(title(idx)))
If result <> "" Then
ws.Columns(result).Delete
End If
Next idx
' ファイルは上書きしないように、新しいファイルを作成
new_filename = FilenameAddNumber(filename)
wb.SaveAs filename:=new_filename
wb.Close
Else
MsgBox filename & "は存在しません", vbExclamation
End If
End Sub
元ファイルが上書き保存されてしまうことを防止するため、新しいファイルを作成しています。
不要な場合は、保存の部分を以下のように修正してください。
' ファイルは上書きしないように、新しいファイルを作成
new_filename = FilenameAddNumber(filename)
wb.SaveAs filename:=filename

コメント