エクセルのマクロを利用して特定の列を列ごと移動させてみました。
特定の列を移動させる
以下のマクロで列を移動させることが可能です。
Sub MoveColumn()
' ソース列とターゲット列の列番号を指定
Dim srcColumn As Integer
Dim tgtColumn As Integer
srcColumn = 1 ' 例: A列
tgtColumn = 7 ' 例: G列
' 最終行を取得
Dim lastColumn As Long
lastColumn = Cells(Rows.Count, srcColumn).End(xlUp).Row
' ソース列のデータをターゲット列に移動
Range(Cells(1, srcColumn), Cells(lastColumn, srcColumn)).Cut Destination:=Cells(1, tgtColumn)
End Sub
[参考] 特定の値が入っている列を最終列に移動させる
同じような列移動のマクロですが、特定の値が入っている列を最終列に移動させるというマクロも試してみました。
やりたいことは以下の画像のように、特定の列を値が入っている列の次の列に移動させる、というものです。
・移動前の状態

・移動後の状態

以下のマクロで移動させることができます。
今回は列としてA列を指定しており、 aaa を特定の値としています。
Sub MoveColumnWithValue()
Dim ws As Worksheet
Dim lastColumn As Long
Dim searchValue As Variant
Dim i As Long
Dim found As Boolean
Dim firstNonEmptyCell As Range
Dim CellsRow As Range
' 対象のシートを指定(必要に応じて変更してください)
Set ws = ThisWorkbook.Sheets("Sheet1")
' A列で最初の値が入っているセルを検索
Set firstNonEmptyCell = ws.Columns("A").Find(What:="*", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
' 最終列の列番号を取得
lastColumn = ws.Cells(firstNonEmptyCell.Row, ws.Columns.Count).End(xlToLeft).Column
' 移動する値を指定
searchValue = "aaa"
' 対象の値が入っている列を探す
For i = 1 To lastColumn
If WorksheetFunction.CountIf(ws.Columns(i), searchValue) > 0 Then
' 対象の列を最終列に移動
ws.Columns(i).Cut Destination:=ws.Columns(lastColumn + 1)
found = True
Exit For
End If
Next i
If Not found Then
MsgBox "指定された値が見つかりませんでした。"
End If
End Sub