エクセルのマクロを利用して、特定の値が入っている列を最終列に移動させてみました。
特定の値が入っている列を最終列に移動させる
やりたいことは以下の画像のように、特定の列を値が入っている列の次の列に移動させる、というものです。
・移動前の状態
・移動後の状態
以下のマクロで移動させることができます。
今回は列として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