【コピペOK】列と列を入れ替える方法!エラー発生時の対処法も解説します【Excel VBA】
こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!
今回はこのような悩みについて解説します。
列と列を入れ替える方法を知りたい!
- 列を移動させる方法
- 列と列を入れ替える方法
- 入れ替えたい列が隣り合う場合の対処法
サンプルコード紹介
今回は「列と列を入れ替える方法」を解説します。
まずはサンプルコードと画面を見て動きを確認してください!
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ステップずつの画面を見て動きを確認してください。
このように列を入れ替えることができました。
次に具体的なコードの解説をしていきます。
列を移動させる方法
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回の移動だけで実行できます。
まとめ
- 「カット」には「Cutメソッド」
- 「カットしたセルを挿入」には「Insertメソッド」
- 列の入れ替えは列を挿入した後の動きを考慮する
- 隣り合う列の入れ替え時のエラーは条件分岐で対処する
今回は「列と列を入れ替える方法」を解説しました。
実務でも様式の体裁を整えたりするのに使えますので使えるようにしておきましょう!
この記事で少しでも皆さんのお役に立てれば幸いです!
忘れないうちにお気に入り登録もお願いします!
ありがとうございました!
コメントはお気軽に!