こんにちは、わたあめです。今回の記事では、列と列を交換するサンプルマクロを紹介します。列を切り取って別の列に挿入するという処理を繰り返しています。一気に交換するという処理ではないので、回りくどい感じはあるかもしれません。
イメージとしては上画像のように、A列とC列を入れ替えるという処理を行う例で紹介していきます。それでは、行ってみましょう!
処理概要
まずは処理の概要です。大きく分けて2ステップで進めていきます。
- C列をA列に移動する
- 元A列をC列に移動する
処理の前提として、指定した列の左側に列が挿入されるという処理にしています。これは頭の片隅に置いておいてください!
ステップ1:C列をA列へ移動
まずは、以下画像のようにC列をA列の左側へ移動します。
この処理が終了した時点で並び順が【元C列→元A列→元B列】の並び順になる。
ステップ2:元A列をC列へ移動
ステップ1の処理を実行したことにより、【元C列→元A列→元B列】となっている状態です。これを踏まえて、元A列のある現B列を選択して、D列の左側に挿入するという処理を行います。
それでは、処理概要を頭に入れたところで、サンプルマクロを見ていきましょう!
列と列を交換するサンプルマクロ
早速サンプルマクロを掲載します。
Sub colSwap()
' ステップ1:C列をA列に移動
ThisWorkbook.Worksheets("Sheet1").Columns("C:C").Select
Selection.Cut
ThisWorkbook.Worksheets("Sheet1").Columns("A:A").Select
Selection.Insert Shift:=xlToRight
' ステップ2:元A列をC列に挿入
ThisWorkbook.Worksheets("Sheet1").Columns("B:B").Select
Selection.Cut
ThisWorkbook.Worksheets("Sheet1").Columns("D:D").Select
Selection.Insert Shift:=xlToRight
End Sub
マクロ解説
マクロでポイントとなる箇所に補足説明しておきます。基本は、選択(Select)して切り取り(Cut)して挿入(Insert)を繰り返すことで列を交換します!
マクロの中で出てくる「Shift:=xlToRight」の指定は、挿入した列以降の列をどの方向に動かすか、という意味です。xlToRightは指定した列に列挿入した後、それ以降の列は右方向に移動します。例えば、A列を指定して挿入してxlToRightした場合、元A列以降の列は右側に移動するという事です。
さいごに
いかがだったでしょうか!作成したいマクロの参考に少しでもなれば幸いです。それでは、また!