【コピペOK】列と列を入れ替える方法!エラー発生時の対処法も解説します【Excel VBA】

こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!

今回はこのような悩みについて解説します。

ルウちゃん

列と列を入れ替える方法を知りたい!

この記事でわかるようになること
  1. 列を移動させる方法
  2. 列と列を入れ替える方法
  3. 入れ替えたい列が隣り合う場合の対処法
目次

サンプルコード紹介

今回は「列と列を入れ替える方法」を解説します。

まずはサンプルコードと画面を見て動きを確認してください!

サンプルコード
Dim C1 As Integer 'C1=入れ替える列の番号1
Dim C2 As Integer 'C2=入れ替える列の番号2

C1 = 2
C2 = 4

'C1<C2にする
If C1 > C2 Then
    Dim i As Integer
    i = C2
    C2 = C1
    C1 = i
End If
    
'C1=C2+1の場合
If C2 = C1 + 1 Then
Columns(C1).Cut
Columns(C2 + 1).Insert
End
End If
   
'C2を切り取り、(C1+1)列に挿入
Columns(C2).Cut
Columns(C1 + 1).Insert
   
'C1を切り取り、(C2+1)列に挿入
Columns(C1).Cut
Columns(C2 + 1).Insert
実行前

このコードを使ってB列とD列を入れ替えてみます。

1ステップずつの画面を見て動きを確認してください。

STEP
D列をC列の位置に移動させる
STEP
B列をD列の位置に移動させる
STEP
入れ替え完了

このように列を入れ替えることができました。

次に具体的なコードの解説をしていきます。

列を移動させる方法

記述方法
Columns(入れ替えたい列数).Cut
Columns(入れ替え先の列数).Insert

列を入れ替える方法の前にまずは、列を移動させる方法を解説します。

Excel上で列を移動させる場合は列を選択して、「カットor切り取り」+「カットor切り取りしたセルを挿入」をクリックします。

カット
カットしたセルの挿入

この動作をVBAで行っていきます。

カット」には「Cutメソッド」を使い、「カットしたセルを挿入」には「Insertメソッド」を使いましょう!

これらを実行することで列を移動させることができます。

列と列を入れ替える方法

次に「列と列を入れ替える方法」を解説します。

先程解説した「列を移動させる方法」を2回実行することで入れ替えることができます。

しかし、入れ替える場合は少しコツが必要です。

記述方法
'列の移動1回目
Columns(入れ替えたい列数).Cut
Columns(入れ替え先の列+ 1).Insert
   
'列の移動1回目
Columns(入れ替えたい列数).Cut
Columns(入れ替え先の列+ 1).Insert

1回目の移動では入れ替え先の列より1列右に移動させておく必要があります。

2回目の移動をさせた際に1列減ることを考慮して、「入れ替え先の列+1」としておきましょう。

この列を挿入した際の動きを理解しておくことが重要です。

入れ替えたい列が隣り合う場合の対処法

最後に「入れ替えたい列が隣り合う場合の対処法」について解説します。

「入れ替え先の列+1」としてプログラムすると隣り合った列を入れ替える場合はエラーが発生してしまいます。

入れ替え先の列が「カット」した列と同じなので移動できません。

ルウちゃん

切り取った列と入れ替え先が同じになってしまうのか、、

そのような場合は「IFステートメント」で条件分岐させましょう。

記述方法
'C1=C2+1の場合
If C2 = C1 + 1 Then
Columns(C1).Cut
Columns(C2 + 1).Insert
’プログラムを終了させる
End 
End If

このように条件を指定し、「列を移動させる方法」で解説したコードを実行させます。

入れ替えたい列が隣り合っている場合は1回の移動だけで実行できます。

まとめ

この記事のまとめ
  1. 「カット」には「Cutメソッド」
  2. 「カットしたセルを挿入」には「Insertメソッド」
  3. 列の入れ替えは列を挿入した後の動きを考慮する
  4. 隣り合う列の入れ替え時のエラーは条件分岐で対処する

今回は「列と列を入れ替える方法」を解説しました。

実務でも様式の体裁を整えたりするのに使えますので使えるようにしておきましょう!

この記事で少しでも皆さんのお役に立てれば幸いです!

忘れないうちにお気に入り登録もお願いします!

ありがとうございました!

/// お得な情報 ///

すぐに使えて便利なテクニックが650個も手に入る!

気になる人は今すぐクリック!!

 

コメントはお気軽に!

コメントする


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

目次