どの程度の回答を望むのかわからないが、何もむつかしい点はないのでは。
簡単なのは「全列繰り返し判別法」だろう。
Sub test01()
cr = Cells(2, 256).End(xlToLeft).Column
MsgBox cr
For c = cr To 1 Step -1
If Cells(1, c) <> "●" Then
Columns(c).Delete
End If
Next c
End Sub
列の「削除」問題なので、右端列から左に順次に処理するのがよさそう。
あとScreenUpdatingのFalse,Trueを入れるとか。
ActiveSheetかシート名でシートを指定したほうがよいかも。
Cells(2, 256).の256はもっと増やしたり、Columns.count(16384)にする方法もある。
補足
ありがとうございます。指定列削除ができ非常に助かりました。誠にすみませんが元に戻すことを忘れておりApplication.Undoとかを使ってもできませんコードが解かれば宜しくお願いします。