「列削除と移動」

「質問内容」

a””からExcelに張り付けた値を自動で編集したい。具体的には、A列B列D列F列H列を削除する。これを貼り付け瞬間に行いたい

 

それと同時にさ、残った列を好みの順に入れ替えたいんだけどできるかな。具体的には、C列とD列を入れ替えたい

 

「コード」

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim deleteColumns As Variant
    Dim col As Long
    
    ' 削除する列を指定(A列、B列、D列、F列、H列に対応)
    deleteColumns = Array(1, 2, 4, 6, 8)
    
    ' シート全体を対象として処理
    If Not Intersect(Target, Me.Cells) Is Nothing Then
        Application.EnableEvents = False
        
        ' 後ろから順に列を削除
        For col = UBound(deleteColumns) To LBound(deleteColumns) Step -1
            Me.Columns(deleteColumns(col)).Delete
        Next col
        
        ' 残った列の順番を入れ替え(C列とD列)
        Dim tempRange As Range
        Set tempRange = Me.Columns("C") ' C列を一時保存
        
        ' C列をD列の後ろにコピー
        Me.Columns("C").Cut Me.Columns("E")
        
        ' D列をC列の位置に移動
        Me.Columns("D").Cut Me.Columns("C")
        
        ' 保存していたC列をD列の位置にコピー
        Me.Columns("E").Cut Me.Columns("D")
        
        Application.EnableEvents = True
    End If
End Sub