「列削除と移動」
「質問内容」
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