【Excel VBA】列を移動し入れ替える方法!基本操作も!

【Excel VBA】列を移動し入れ替える方法!

VBAで列を移動し入れ替えしたいときはないでしょうか。

けど、そんな中で悩むことは、

・VBAで列を移動し入れ替えしたいが方法がよくわからない
・Excelの基本操作で列を移動し入れ替えしたいが方法がよくわからない

ですよね。

今回はそんなお悩みを解決する

・VBAで列を移動し入れ替える方法
・Excelの基本操作で列を移動し入れ替える方法

についてまとめます!

VBAで列を移動し入れ替えするイメージ

VBAで列を移動し入れ替えするイメージについて説明をします。

Excel側に3列の表を作成します。

まずは基本操作で列を移動し、移動先の列と入れ替えていきます。

次にVBAを使い、基本操作と同じく列を移動し入れ替えていきます。

まとめて列の移動と入れ替えができると大量に修正箇所があった場合に重宝しますね!

それでは早速試してみましょう。

Excelの基本操作で列を移動し入れ替える方法

Excelの基本操作で列を移動し入れ替える方法について説明をします。

Excel側に3列の表を作成します。

サンプルではA列を移動対象列とし、C列と入れ替えていきます。

まず移動対象とするA列全体を選択して、右端の選択範囲のラインをShiftキーを押しながら右クリックし続けます。

次に移動先のC列と入れ替えてていきます。

C列とD列の間までドラッグして移動し、移動ができたら右クリックを離します。

はい、A列が移動し、C列との入れ替えができましたね!

次はこの操作をVBAで再現してみましょう。

VBAで列を移動し入れ替える方法

VBAで列を移動し入れ替える方法について説明をします。

サンプルのVBAコードは以下の通りです。

Sub 列を移動し入れ替える()
    Dim strIdoCol As String
    Dim strIdoSakiCol As String
    
    '移動対象の列名を指定します。
    strIdoCol = "A"
    
    '入れ替え先の列のひとつ先の列名を指定します。対象をC列とするときは「D」を指定します。
    strIdoSakiCol = "D"

    '移動対象の列をカットします。
    Columns(strIdoCol & ":" & strIdoCol).Cut
    '移動対象の列を移動先へ挿入し、前にあった列を移動対象の列へ移動し入れ替えます。
    Columns(strIdoSakiCol & ":" & strIdoSakiCol).Insert Shift:=xlToRight
End Sub

VBAの設定をする

VBAの設定について説明をします。

移動対象の列名を指定します。今回はA列となりますので「A」を指定します。

strIdoCol = "A"

入れ替え先の列のひとつ先の列名を指定します。対象をC列とするときは「D」を指定します。

strIdoSakiCol = "D"

VBAの実装

VBAの実装方法については
VBAの実装手順
をご参照ください。

VBAを実行する

VBAを実行してみましょう。

はい!A列が移動し、C列との入れ替えができましたね!

VBAの説明

VBAについて説明をします。

移動対象の列をカットします。

Columns(strIdoCol & ":" & strIdoCol).Cut

移動対象の列を移動先へ挿入し、前にあった列を移動対象の列へ移動し入れ替えます。

Columns(strIdoSakiCol & ":" & strIdoSakiCol).Insert Shift:=xlToRight

VBAで列を移動する方法(入れ替えなし)

次にVBAで列を移動するだけの方法について説明をします。

サンプルのシナリオはA列をE列に移動する内容となります。

サンプルのVBAコードは以下の通りです。

Sub 列を指定列へ移動する()
    Dim strIdoCol As String
    Dim strIdoSakiCol As String
    
    '移動対象の列名を指定します。
    strIdoCol = "A"
    '移動先の列の列名を指定します。対象をE列とするときは「E」を指定します。
    strIdoSakiCol = "E"

    '移動対象の列をカットし、Destinationプロパティで行先の列へ貼り付けます。
    Columns(strIdoCol & ":" & strIdoCol).Cut Destination:=Columns(strIdoSakiCol & ":" & strIdoSakiCol)

End Sub

VBAの設定をする

VBAの設定について説明をします。

移動対象の列名を指定します。今回はA列となりますので「A」を指定します。

strIdoCol = "A"

移動先の列の列名を指定します。対象をE列とするときは「E」を指定します。

strIdoSakiCol = "E"

VBAを実行する

VBAを実行してみましょう。

はい!A列がE列へ移動されましたね!

VBAの説明

VBAについて説明をします。

移動対象の列をカットし、Destinationプロパティで行先の列へ貼り付けます。

Columns(strIdoCol & ":" & strIdoCol).Cut Destination:=Columns(strIdoSakiCol & ":" & strIdoSakiCol)

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・VBAで列を移動し入れ替える方法
・Excelの基本操作で列を移動し入れ替える方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です