描画を停止し、まとめて列削除をする
大量の列を削除する場合、処理時間が遅いことがあります。
その場合は、「描画の停止」と「列をまとめて削除する」ことで高速化が可能です。
列削除で時間がかかる1番の理由は、1つずつ列を削除する処理だからです。

一般的な書き方に比べ、今回の高速化で処理時間は10分の1以下にはなると思います。
「描画の停止」をするには、処理の前にApplication.ScreenUpdating = Falseと書きます。
その後、すべての処理が終わったらApplication.ScreenUpdating = Trueで描画するように戻せば、実行結果がエクセルに反映されます。
「列をまとめて削除する」には、Range変数に削除対象の列をどんどんUnionメソッドで格納し、最後にまとめて列を削除します。
コード
サンプルコートは、「社員情報」ブックの「住所」シート1~2000列目で、1行目の値が×の列をすべて削除します。
解説
サンプルコードでは、対象のシートをws変数に格納し、格納したシートを処理対象としています。
繰り返し処理の中で、1列目から2000列目を順番にチェックします。
最初に削除対象の列が見つかった時は、deleteColumns変数に列を格納し、2件目以降の削除対象の列が見つかった時はUnionメソッドでどんどん格納しています。

UnionメソッドでdeleteColumns変数に、つなげていってるイメージです
最後に、削除対象の列があったらEntireColumn.Deleteで、列をまとめて一括削除します。
EntireColumn.Deleteなど列削除の方法については下の記事を見てください。
【VBA】列を削除する(1列だけ、連続した複数列、離れた複数列)
(参考)高速化してないコード
高速化せずに、普通に書いたプログラムは次のようになります。

特に処理時間に問題ない時は、この高速化していないこのコードの方が見やすいので、この書き方でOKです。
このコードのように、1列ずつ削除する場合は、後ろの列からループ処理で削除していきます。
詳しい理由は、次の記事を参考にしてください。