1 - Para el primer grupo: eliminar columnas
No es necesario seleccionarlas antes, por ej:
Columns("G:I").Select
Selection.Delete Shift:=xlToLeft
Puede ser reemplazado por:
Columns("G:I").Delete Shift:=xlToLeft
Así con cada grupo de columnas. Solo tené cuidado que al eliminar col la que selecciones a continuación sea la que realmente necesites eliminar.
2 - Cortar y pegar columnas: en lugar de las 4 primeras utilizar las 2 últimas.
'Columns("O").Select
'Selection.Cut
'Range("D1").Select
'Selection.Insert Shift:=xlToRight
Columns("O").Cut
Range("D1").Insert Shift:=xlToRight
3 - Insertar más de una columna:
En lugar de seleccionar 1 columna y repetir las instrucciones de Insert, se hace al revés: se selecciona la cantidad de columnas necesarias y se inserta 1 sola vez. Ej:
'Columns("I:I").Select
'Selection.Insert Shift:=xlToRight
'Selection.Insert Shift:=xlToRight 'aquí estás intentando insertar 2 col, entonces sería:
Columns("I:J").Select
Selection.Insert Shift:=xlToRight
Creo que el resto es más de lo mismo.
Sdos!