離れた複数の列を同時に削除するExcelマクロが動かない原因と対処法

今日び、Excelマクロは、「新しいBing(チャット)」に聞けば、正しいコードをどんどん書いてくれるので、非常にとっつきやすいものになっています。

でも、コードが正しくても、動作しないということがあります。

それが、操作する対象の表が「テーブル(任意のセルをクリックしてCtrl+Tを押すとなるやつ)」であるときです。

テーブルは、手作業でも削除などの操作がうまくできなかったり(できていても画面のリフレッシュが遅くて、スクロールさせないと消えたように見えなかったり)して、好きじゃない人も多いと思います。

マクロで削除しようとしても、ほぼエラーの原因になるのです。

なんと、テーブルを、別のマクロ入りファイルに値のみ貼り付けしても、やっぱりエラーになる。

たちが悪いのは、相手がテーブルでも、1列だけ削除ならマクロでできることです。複数の列を削除しようとすると、テーブル相手ではエラーの連続になります。

正しい対処法は、テーブルのExcelファイルをいったんCSV形式で保存して閉じ、Excelで開きなおしたものを、マクロのファイルにコピー&ペーストして、そこで複数列削除のVBAコードを実行することです。

テーブルとして扱いたいときは、そのあとにマクロなどでテーブル化しましょう。CSV保存しても日付などの書式は失われないので、安心して試してみてください。