くまおやぢの雑記帳

人生は、やろうと思った瞬間がスタートライン。Excel・Access・ガジェット・スマホ関係のネタを綴っています。あなたの「できる」を応援します。

エクセルの列移動・行移動テクニック|コピペから関数・VBAまで完全網羅

1.はじめに

エクセルで表を作っていると、こんなことってありませんか?

「あ、この列、やっぱり前に持ってきたい」
「データの順番を変えたいけど、どうやるのが正解?」
「行を移動したら、セルの内容がグチャグチャに…!」

そう、列や行の移動って、思ったより奥が深いんです。
しかも、やり方によっては大切なデータを上書きしてしまったり、順番が崩れてしまったり…。ちょっとした操作ミスで「エクセル崩壊」なんてことも。

ですが、ご安心を。
この記事では、エクセルで列や行を移動する方法を「基本」から「応用」、さらに関数やVBAを使った自動化テクニックまで、しっかり網羅してご紹介します。

「とりあえず移動できればOK」な方から
「どうせなら効率的に移動したい!」という効率化マニアな方まで、
きっと満足していただける内容になっています。

この記事でわかること

  • エクセルで列や行を移動する5つの基本的な方法
  • 関数(ROW/COLUMN)を活用した位置取得・移動のテクニック
  • VBAを使った自動化による効率アップ
  • よくある失敗例と対処法
  • 目的別におすすめの移動方法まとめ

「Excelをもっと使いこなしたい!」
そんなあなたのために、これから順番に解説していきます!

それでは、さっそく見ていきましょう。

2.列移動・行移動はどんなときに必要?

「そもそも、列や行を移動する必要ってあるの?」
そう思われる方もいるかもしれませんが、実際の業務ではかなりの頻度で使われる操作なんです。

ここでは、よくある業務シーンを3つ取り上げて、なぜ列や行の移動が重要なのかを見ていきましょう。

実務でありがちなシーン

表の並び順を変えたいとき(顧客一覧・売上データなど)

たとえば、顧客リストがあったとします。

No 名前 電話番号 住所 メールアドレス
1 鈴木 090-xxxx 東京 suzuki@〜

でも、「営業担当の目に入りやすいように、“電話番号”を最初に持ってきたい」と思ったとき…
列移動の出番です!

データを削除せずに、順番だけを変える。これがうまくできれば、表の見やすさや使いやすさが格段にアップします。

月ごとのデータを移動・入れ替えたいとき

売上管理や予算表では、「1月〜12月」までの月別データを扱うことが多いですよね。

A列:1月  
B列:2月  
C列:3月  
...

でも、「四半期ごとの集計がしたいから、1月・4月・7月・10月を左にまとめたい!」
そんな時にも、列移動でサクッと並び替えられれば効率的です。

表を見やすくするための再配置

データ分析や報告書の作成では、表の配置によって印象が大きく変わります。

  • 一番重要な列を左に寄せる
  • 確認頻度が低い情報は右端や下にまとめる
  • グループごとに行を再配置する

こうした微調整にも、行列移動は欠かせません。
特に「報告書を上司に提出する前の最終チェック」では、表の構造を整えることが品質向上につながります。

一言アドバイス

表の順番で“伝わり方”が変わります。
移動は「並び替え」ではなく「印象操作」でもあるのです。

3.基本のやり方5選

「列や行を移動したいけど、どの方法が正解かわからない…」
そんな方のために、まずは誰でもできる5つの基本的な移動方法をご紹介します。

シンプルなコピペからショートカットキー、直感的なドラッグ操作まで、それぞれの手順とポイントをわかりやすく解説していきます。

① コピペで行・列を移動する方法

最もシンプルな方法がこれ。コピー&貼り付け+元の削除です。

操作手順

  1. 移動したい行または列を選択
  2. Ctrl + C でコピー
  3. 移動先のセルを選んで Ctrl + V で貼り付け
  4. 元の行や列を右クリック → 「削除」

ポイント

  • 値だけコピーしたい場合は、「形式を選択して貼り付け」がおすすめ
  • 貼り付け時に元データの書式や数式が邪魔になるときは「値のみ貼り付け」が便利

② ショートカットキーを使ってサクッと移動

時短の王道といえば、ショートカットキー
特に「切り取り(Ctrl + X)」+「挿入(Ctrl + Shift + +)」の組み合わせは鉄板です。

操作手順(列移動の場合)

  1. 移動したい列全体を選択
  2. Ctrl + X(切り取り)
  3. 挿入したい位置の列を右クリック → 「挿入されたセルの左に挿入」
      または Ctrl + Shift + + で即挿入

ポイント

  • 行の移動も同様の操作でOK
  • ショートカットに慣れれば、マウスいらずで快適!

③ ドラッグ&ドロップで直感操作

意外と知られていないのが、マウスだけで行や列を移動できるテクニック。さらに、Shiftキーとの併用でよりスマートな操作も可能です。

基本のドラッグ操作(行・列)

  1. 列記号(例:B列)または行番号をクリックして選択
  2. 境界線の上でカーソルが「4方向矢印」になったらクリック&ドラッグ
  3. 移動先までドラッグしてドロップ

Shift + ドラッグによる移動(おすすめ!)

Shiftキーを押しながらドラッグすると、「挿入」しながら移動できます。
つまり、元の列や行は削除され、移動先に差し込まれる形になるため、データのずれや上書きの心配が激減!

例:B列をE列の前に移動する場合
  1. B列の見出しをクリック
  2. Shiftを押しながらドラッグして、E列の手前でドロップ
    → B列がそのままE列の手前に移動され、元の位置は空白にならない!

Ctrl + ドラッグとの違いは?

  • Ctrl + ドラッグ → コピー
  • Shift + ドラッグ → 移動(挿入)

注意点

  • セル結合やフィルターがかかっていると正常に動作しないことも
  • 移動先にデータがあると、上書きの危険があるため事前に空白を確認!

④ リボン機能を使って移動

マウス操作派におすすめなのが、リボン(メニュー)からの操作

操作手順

  1. 移動したい行または列を選択
  2. 「ホーム」タブ → 「挿入」または「削除」グループを選ぶ
  3. 必要に応じて「切り取り」「貼り付け」もリボンから実行

メリット

  • 一目で操作がわかるので初心者にやさしい
  • 「移動とコピー」機能を使えば、別シートへの移動もスムーズ!

⑤ 行・列全体の選択→移動

「なんかうまく選択できない…」という方は、行番号や列記号をクリックして全体選択を!

操作方法

  • 行なら「1、2、3…」、列なら「A、B、C…」の見出しをクリック
  • そこから「切り取り」「コピー」「削除」「ドラッグ」などが可能

ポイント

  • 列全体を移動するときは、必ず列記号を使って選択すること!
  • セル単体を選んで移動しようとすると、構造が崩れる原因に…

まずは自分に合った方法を見つけよう!

方法 おすすめ度 特徴
コピペ ★★★☆☆ 誰でも使えるが手間はやや多め
ショートカット ★★★★☆ 慣れれば最速!
ドラッグ&ドロップ ★★★★☆ Shift併用で挿入移動がスマート!
リボン操作 ★★☆☆☆ 初心者向け、操作がやや多い
番号選択 ★★★★☆ ミスが少なく安全な操作が可能

4.ROW関数・COLUMN関数の活用法【関数派向け】

「行番号や列番号を動的に扱いたい」
「関数を使って、スマートに移動や参照をしたい」
そんな関数好き・業務効率化マニアにおすすめなのが、ROW関数とCOLUMN関数の活用です。

これらの関数をマスターすれば、「今どの行?どの列?」を自動取得して処理を変えるといった柔軟なシート作成が可能になります。

関数で位置を把握しよう

ROW関数で行番号を取得する

=ROW()
  • 今いるセルの行番号を返します
  • 例:セルB3に入力すると「3」が返る

応用例:他のセルの行を取得したいとき

=ROW(A10)

→ 結果:「10」
A10セルの行番号を返します。

COLUMN関数で列番号を取得する

=COLUMN()
  • 今いるセルの列番号を返します(A列=1、B列=2…)
  • 例:セルD5に入力すると「4」が返る
=COLUMN(G1) → 7

→ G列=7番目の列番号。

INDEXやOFFSETと組み合わせた移動応用

ROWやCOLUMN単体では「位置を知る」だけですが、これをINDEX関数やOFFSET関数と組み合わせることで、動的にセルを参照・移動できるようになります。

例1:「現在のセルから3行下の値」を取得

=OFFSET(A1, 3, 0)
  • A1から3行下(A4)を参照します
  • OFFSET(開始セル, 行方向のズレ, 列方向のズレ)

例2:「現在のセルの右に2列、下に1行のセル」を取得

=OFFSET(B2, 1, 2)

→ 結果はセル D3 を参照

例3:列番号を使って列を動的に指定する

=INDEX(A1:Z1, COLUMN(D1))
  • D1が4列目なので、A1:Z1の中から4番目(D1)を参照します
  • 列番号を変えることで、INDEXで取得する列を動的にコントロール可能!

ROW/COLUMNが活きるシーン

  • 大量データを扱うテンプレートで、どの行に何を表示するか自動化
  • 列の位置が変わっても参照先が崩れないように関数で制御
  • VBAでセルを操作する際、ROW/COLUMNで範囲を取得して使う

補足:MATCH関数と組み合わせるとさらに便利

=COLUMN(INDIRECT("B1"))

といったように、文字列から列番号を取得したり、
MATCH("商品A", A1:A100, 0) のように、見つかった位置を COLUMN に渡すことで、
「値がある場所の列番号」→「INDEXでその列を参照」といった芸当も可能に。

関数派の方はぜひこの章をマスターして、
「動かす」というより「関数で操る」Excelを体感してみてください!

5.VBAで行・列を一括移動【上級者向け】

「毎回、同じような行や列の移動をしてる気がする…」
「もっと一瞬で処理できないの?」
そんな声に応えてくれるのが、Excel VBA(マクロ)です。

ここでは、VBAで行や列を自動的に移動する方法を、初心者でも試せるコード付きでご紹介します。

VBAを使うメリットとは?

作業をワンクリックで自動化できる

繰り返し操作が多い行・列の移動を、一度のマクロ実行で完了!

条件付き移動が可能

「〇〇という値がある行だけを移動」など、柔軟な処理ができるのがVBAの強み。

人的ミスをゼロに

複雑な移動処理でも、ミスなく正確に実行可能。

行を別の場所に移動するVBAコード例

Sub MoveRow()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ws.Rows(5).Cut
    ws.Rows(10).Insert Shift:=xlDown
End Sub

解説

  • Rows(5):5行目を対象
  • .Cut:切り取り
  • .Insert:10行目の位置に挿入(それ以降の行が下にズレる)

列を別の場所に移動するVBAコード例

Sub MoveColumn()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ws.Columns("C").Cut
    ws.Columns("A").Insert Shift:=xlToRight
End Sub

解説

  • Columns("C"):C列を切り取り
  • Insert Shift:=xlToRight:A列の左にC列を挿入し、元のA列以降が右へずれる

条件付きで行を移動する例(特定値を持つ行)

Sub MoveRowIfValueFound()
    Dim ws As Worksheet
    Dim i As Long
    Set ws = ThisWorkbook.Sheets("Sheet1")

    For i = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row To 1 Step -1
        If ws.Cells(i, 1).Value = "移動対象" Then
            ws.Rows(i).Cut
            ws.Rows(2).Insert Shift:=xlDown
        End If
    Next i
End Sub

ポイント

  • A列に「移動対象」という文字がある行だけを2行目に移動
  • 逆ループ(下から上へ)で行をスキップせずに処理

ボタン1つで動く簡単マクロの作り方

  1. 「開発」タブを表示(表示されていない場合は「オプション」→「リボンのユーザー設定」)
  2. 「挿入」→「フォームコントロール」→「ボタン」を選択
  3. シート上に配置し、作成したマクロを割り当てるだけ!

補足:安全な実行のために

  • .Cut の代わりに .Copy を使えば、元のデータを残すことも可能
  • .Application.ScreenUpdating = False を使えば高速化
  • 実行前にバックアップ or シートの保護解除を忘れずに!

VBAは一見ハードルが高く見えますが、1回覚えると一生使える武器になります。
行・列の移動がルーチン化している方には、間違いなくおすすめです!

6.よくある失敗とその対策集

「列や行を移動したら、表が崩れた…」
「コピーしたと思ったら、上書きされてた…」

誰もが一度は経験したことがある、行列移動の“あるある失敗”
ここでは、そんなミスの原因と対策をしっかりおさえておきましょう。

列が上書きされてしまった!

ありがちな原因

  • 移動先にすでにデータがあるのに、そのまま「貼り付け」や「ドラッグドロップ」をしてしまった
  • Ctrl + X → Ctrl + V で上書きして、気づいたときには元に戻せない

対策

  • 移動先が空白かどうかを事前に確認
  • 万が一に備えて、「元に戻す(Ctrl + Z)」ですぐにリカバリできるようにする
  • 操作前にファイルを一度保存(Ctrl + S)しておくと安心

行がずれてデータが崩れた!

ありがちな原因

  • 挿入と削除をうまく使わずに「貼り付け」で無理やり移動
  • データの結合セルが影響して、行の高さや並びが狂った

対策

  • 「切り取り+挿入(Shift + Ctrl + +)」を正しく使う
  • セル結合はなるべく避ける or 解除してから作業する
  • 一時的にフィルターを解除して、全体を見ながら操作する

移動したつもりがコピーされていた?

ありがちな原因

  • ドラッグ操作のときに Ctrl キーを押していた
  • 「コピー」→「貼り付け」だけで、元データを削除するのを忘れていた

対策

  • ドラッグ時はShift:移動/Ctrl:コピーを覚える!
  • コピー後は「元のデータを削除する」操作を忘れずに
  • 迷ったときは、「切り取り(Ctrl + X)」が安全

セル結合が邪魔してエラーになった!

ありがちな原因

  • 移動元または移動先のセルに「結合されたセル」が含まれている
  • 結合セルが移動によって範囲外にはみ出す

対策

  • 移動前に「結合されているか」をチェック
  • 結合を解除したうえで移動し、必要に応じて再結合
  • VBAや関数を使う場合は、結合セルがエラーの原因になることが多いので特に注意!

その他、ありがちな落とし穴

ミスの内容 ありがちな状況 対策のポイント
行や列を1つずれて移動 ドラッグで手が滑った 行番号・列記号での選択を徹底する
フィルター中に移動したら崩れた 可視セルだけを操作したつもりが… フィルター解除 → 全セル表示で操作
関連する数式が崩れた 列移動によりセル参照がズレた 絶対参照($A$1)やINDIRECT関数を活用
他シートに移動したら書式が消えた 「値のみ貼り付け」で書式が飛んだ 「形式を選択して貼り付け」で書式付きで貼る

移動操作はシンプルに見えて、細かい落とし穴がたくさんあります。
でも、こうした注意点を押さえておけば、もう失敗とはサヨナラです!

7.目的別おすすめ手法まとめ

ここまでで、エクセルの列移動・行移動に関するさまざまな方法をご紹介してきました。

でも実際の現場では、「どうやるか」よりも「どの方法を選べば一番効率的か?」が重要です。
この章では、状況別・目的別に最適な移動手段をまとめました。

「とにかく早く済ませたい」「毎回同じことをしてる」「構造が崩れない方法が知りたい」──
そんなニーズにピッタリなテクニックを提案します。

データ量が多い場合

おすすめ手法

  • ショートカット(Ctrl + X → 挿入)
  • Shift + ドラッグ
  • VBAで一括移動

解説

大量データを扱う場合、マウス操作は非効率になりがちです。
ショートカットやVBAを使えば、手を止めずに移動が完了!
VBAならボタン1つで1000行単位でも一瞬で処理できます。

データに規則性がある場合(例:3列ごとに同じパターン)

おすすめ手法

  • ROW関数 / COLUMN関数
  • OFFSET関数との組み合わせ
  • INDEX + MATCH構成

解説

表の構造に規則があるなら、関数で動的に位置を算出して参照するのが最もスマート。
特に、マスタ表を自動生成したり、テンプレート的に使いたいときに効果を発揮します。

毎回使う作業の場合(定型業務・ルーチン)

おすすめ手法

  • VBAマクロの登録
  • ボタンにVBAを割り当てる
  • リボンやクイックアクセスツールバーへの登録

解説

「毎月このデータをこっちに移す」「必ずA列を一番左に持ってくる」など、定型処理にはVBAが最強。
操作手順を記録して、ワンクリックで自動実行すれば、もう面倒な作業とはおさらばです。

ミスを極力防ぎたい場合

おすすめ手法

  • リボン操作
  • 番号(行番号・列記号)選択による確実な範囲指定
  • 操作前に「元に戻せるように」保存 or バックアップ

解説

誤操作のリスクがあるときは、可視的でわかりやすい方法が安全。
ショートカットやドラッグ操作よりも、1ステップずつ丁寧に操作できる方法を選ぶのが◎。

スピード優先でサクッとやりたいとき

おすすめ手法

  • Shift + ドラッグ
  • ショートカット
  • コピー&削除(最速原始法)

解説

とにかく一瞬で移動したいときは、Shift + ドラッグが鉄板!
慣れると「考える前に手が動いてる」状態になります。
ただし、移動先の状態はしっかりチェックしてから実行しましょう。

目的で選ぶ「最適解」早見表

目的 最適な手法 備考
データ量が多い VBA / ショートカット 手作業はNG!ツールで一気に処理
パターンがある 関数(ROW/COLUMN/INDEX) 再利用性&自動化が強い
毎回のルーチン処理 VBA + ボタン登録 業務効率化の定番
安全性を重視 リボン操作 / 番号選択 操作ミスを極力避けたいときにおすすめ
スピード重視 Shift + ドラッグ / Ctrl + X とにかく早く終わらせたいならこれ

どの方法にもメリット・デメリットがあります。
大切なのは、「目的に合ったやり方を選ぶこと」
これを意識するだけで、日々の作業効率がグッと変わります!

8.まとめ

エクセルでの行や列の移動――
シンプルに見えて奥が深く、方法もいくつかあれば、それぞれに適した使いどころがあります。

本記事で学んだことの振り返り

項目 ポイント
行・列移動の必要性 実務で頻出!見やすさ・操作性・伝達力を左右する
基本のやり方5選 コピペ、ショートカット、ドラッグ、リボン操作など
Shift + ドラッグ 最強の直感操作。上書きの心配も激減
関数(ROW/COLUMN) 柔軟なセル参照とテンプレート化に最適
VBA活用 定型業務を一瞬で。条件付き移動も可能
よくあるミスとその回避法 上書き・ズレ・結合セルトラブルを防ぐ
目的別おすすめ手法 自分のスタイル・作業内容に合わせて選べる

Excelは“動かしてなんぼ”!

「ただ入力するだけ」だったExcelも、
列や行を自由自在に動かせるようになると、一気に“使いこなしてる感”が出てきます。

特に今回の内容は、作業効率を大きく左右する超実用スキル
日々の業務で「これは毎回使えるな」と思うテクを、どんどん取り入れていってください。

あなたに合うやり方が“正解”

  • ショートカットが好きな人も
  • マウスでじっくり作業する人も
  • 関数でスマートに処理したい人も
  • 自動化に夢中な人も

みんな違って、みんな正解です。

あなたのスタイルに合った“Excel流派”を見つけて、
今日からもっと快適で、もっとミスの少ない作業環境を目指しましょう!