《メモ:VBA》「行と行(列と列)」を入れ替える
VBAの勉強も兼ねてメモ。
行と行(列と列)を一行丸ごと入れ替えるコードです。
「エクセルシートの行と行(列と列)を丸ごと入れ替えたい!
でも、どうやってやればいいの?」
と思い、いろいろと調べて作ってみた備忘録です。
以下のサイト様を参考に、多少自分が使いやすいようにアレンジしました。
「行と行」を入れ替えるマクロのコードは以下。丸ごとコピーすればOKです。以下ののコードでは、例として、2行目と4行目を丸ごと入れ替えています。
「列と列」を入れ替える場合は、実際に行の入れ替えを行っている箇所:「Rows」を「Columns」に変えてください。
Sub 行の交換() '行の交換。ここの変数に入れ替えたい行を入力 Call Exchange(2, 4) End Sub '------------------------------------------- '行の交換を実行する関数 '------------------------------------------- Sub Exchange(R1 As Integer, R2 As Integer) 'R1 = 入れ替える行の番号1 'R2 = 入れ替える行の番号2 If R1 = R2 Then 'エラー処理 MsgBox "行番号が同じです" End 'プログラム終了 ElseIf R1 > R2 Then 'R1<R2にする Dim swap As Integer swap = R2 R2 = R1 R1 = swap End If '行の交換-------------------------------- If R2 - R1 = 1 Then '①入れ替える行が隣り合う場合 'R2を切り取り、(R1+1)列に挿入 Rows(R1).Cut Rows(R2 + 1).Insert Else '②入れ替える行が隣り合わない場合(①以外) 'R2を切り取り、(R1+1)列に挿入 Rows(R2).Cut Rows(R1 + 1).Insert 'R1を切り取り、(R2+1)列に挿入 Rows(R1).Cut Rows(R2 + 1).Insert End If '---------------------------------------- End Sub