プチIT化 PR

【Excel VBA】列と列を交換するマクロサンプル

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんにちは、わたあめです。今回の記事では、列と列を交換するサンプルマクロを紹介します。列を切り取って別の列に挿入するという処理を繰り返しています。一気に交換するという処理ではないので、回りくどい感じはあるかもしれません。

列と列を交換するマクロサンプル

イメージとしては上画像のように、A列とC列を入れ替えるという処理を行う例で紹介していきます。それでは、行ってみましょう!

処理概要

まずは処理の概要です。大きく分けて2ステップで進めていきます。

  1. C列をA列に移動する
  2. 元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列以降の列は右側に移動するという事です。

さいごに

いかがだったでしょうか!作成したいマクロの参考に少しでもなれば幸いです。それでは、また!