Excelでセルの内容を交換しますか?


42

Microsoft Excelの2つのセルの内容を交換する簡単な方法はありますか?

簡単に言うと、一時的なセルへのコピーやVBAスクリプトなどの書き込みを伴わない、キーボードショートカットまたはメニュー項目のいずれかです。つまり、2つのセルを選択して、メニュー項目をクリックするか、キーの組み合わせを押して内容を入れ替える方法を探しています。確かに、これを行う方法がなければなりませんか?


これは並べ替えの非常に具体的な実装のように見えますが、高度な並べ替えオプションにまだ存在しない場合は、非VBAソリューションとして他の場所で見つけることができると驚くでしょう
-drapkin11

回答:


47

From:http : //www.extendoffice.com/documents/excel/860-excel-swap-contents-of-two-cells.html

場合によっては、隣接する2つのセルを交換する必要があります。手動で簡単に行うことができます。次のスクリーンショットを見て、セルA4とB4を交換したいので、次のようにしてください:

ここに画像の説明を入力してください

  1. 交換するセルを選択します。この例では、セルA4を選択します。

  2. プレスシフトキー、および右の境界にカーソルを置きます。

  3. 次に、カーソルをセルB4の右境界線にドラッグします。

  4. 「工」が表示されたら、マウスを放します。

  5. そして、2つのセルの内容が交換されました。

ここに画像の説明を入力してください

この方法では、隣接する2つの行または列を交換することもできます。


8
これは私にとって選択されたanserでなければなりません。ありがとうございました!
ナムG VU 14

2
私にはうまくいきません。これらの2つのセルの間に空のセルを挿入するだけです
-phuclv

2
これは、元の質問が要求したものではない隣接セルに対してのみ機能します。
-jpierson

これはExcel 2010ではまったく機能しません。すばやく点滅しますが、セルの内容は変更されません。
ハシム

@phuclvステップ2で、マウスカーソルを右中央の境界線ではなく右下の境界線に置いていることに気付く前に、私はあなたと同じ問題を抱えていました。
リチャード

17

隣接する同じサイズの長方形の範囲の特定の場合、同様の質問に対するこの回答で説明されている方法を使用できます。

  1. 右または下の範囲を選択してください
  2. Ctrl+を押すX
  3. 隣接する範囲(つまり、真上または左)を選択します
  4. Ctrl+を押します++通常は=キーの上にあるため、これはCtrl+ Shift+に変換されます=

同じ手順を使用して、隣接する行または列全体を交換できることに注意してください。


1
優れた。これはまさに私が探していたものです。キーボードショートカットを使用し、複数のセルを操作できるようになると、非常に高速になります。
アンソニーG-モニカの正義

これは私にはうまくいきません。そして、セルは互いに隣接しています。なぜこれが機能しないのかわかりません。このコマンドに特別な説明はありますか?
スマートヒューマニズム

15

簡単に言うと、一時的なセルへのコピーやVBAスクリプトなどの書き込みを伴わない、キーボードショートカットまたはメニュー項目のいずれかです。2つのセルを選択してメニュー項目をクリックするか、キーの組み合わせを押して内容を入れ替える方法を探しています。

なぜこの制限を課すのですか?マクロを作成すると、これは簡単になります。私の知る限り、他の方法で行うことはできません。マクロをボタンまたはホットキーに割り当てることができます。

Sub Swap()     
    If Selection.Count <> 2 Then     
         MsgBox "Select 2 cells (only) to swap."     
         Exit Sub     
    End If     
    Set trange = Selection     
    If trange.Areas.Count = 2 Then     
         temp = trange.Areas(2)     
         trange.Areas(2) = trange.Areas(1)     
         trange.Areas(1) = temp     
    Else     
         temp = trange(1)     
         trange(1) = trange(2)     
         trange(2) = temp     
    End If     
End Sub     

4
私はVBAの専門家ではなく、1つになる時間も傾向もありません。また、多くの異なるコンピューターを頻繁に使用しています。ホットキーにバインドできるように、Excelで使用するすべてのコンピューターでスワップを使用できるようにすると、VBAマクロのコードを検索する必要がなくなります。
ダンモールディング

3
@Dan誰もが自分のペットの機能をExcelに組み込むことができればいいのですが、そうすると、それはすでによりも肥大化した混乱になります。Excelにこのような反復タスクを自動化するマクロ言語があるのには理由があります。Google検索で見つかったコードを投稿しました。専門家である必要はありません。
ghoppe

+1 vbaは、Excelでペット機能を追加できる方法です。そこに多くのコンピュータ上でそのVBA avaliableを作る方法は自分だけに、またはすべてに、またある(例えば個人ワークブック、またはアドイン)
クリス・ニールセン

9
2つのセル/行/列のコンテンツをスワップしてペット関数と呼ぶことはほとんどありません。
ニコライ

5
@ghoppeは必須ではないかもしれませんが、「Excelの2つのセルの内容を入れ替える」(既に持っている)をすばやく検索すると、Danと私だけがこの機能を気にかけないことは明らかです。
ニコライ

5

いいえ。Excelで2つのセルの内容を交換する方法はありません。それを行うための独自のマクロを作成する必要があります。

編集:Excelのより新しいバージョンでセルの内容を簡単に交換できる方法があるように思われるため、この回答はおそらく古くなっています。


この文は間違っています。user190216からの回答を参照してください。
カールルーキー

@KarlRookeyもともとその答えは、セルは隣接している必要があると述べていました(そして、それでもありません)。これは、最近のバージョンのExcelではもはや当てはまらないようです。その場合は、はい、今より良い答えがあります。ありがとう!
ダンモールディング

これを言ってくれてありがとう。ここのすべての例には、2つのセルを交換するという副作用があります(隣接している場合)が、「セルを交換する」のではなく、セルを「シフトする」。
ピーターリッチー

2

交換するセルの最初のセットを選択し、ctrl+を押しますx

交換するセルの横にあるセルを選択し、ctrl+ を押します+


1
これは、セルが隣接している場合にのみ機能します。そうでなければ、全体がターゲットセルの近くに移動します。
tumchaaditya 14年

0

最大25個のアイテムをクリップボードに貼り付けることができるため、ctr + tabまたはcmd + tab macを使用して簡単に交換できます


2
これはMacの標準機能ですか?質問の著者は、彼らがどのプラットフォームにいるかを特定しませんでした。Windowsのすべてのバージョンの標準クリップボードに複数のアイテムが含まれているかどうかはわかりませんが、その機能を提供する無料のユーティリティがすぐに利用できます(キーボードショートカットは異なる場合があります)。このアプローチをより包括的にするために答えを広げていただけますか?
fixer1234

私はこれをWindowsで試しましたが、理解できませんでした。クリップボードリングから貼り付けるためにVisual Studioで通常機能するctrl + shift + pオプションも試しました。
-jpierson


0

私はこの投稿を読みましたが、実際には全範囲を交換するマクロが必要でした。さらに、色を交換する必要がありました。元々投稿されたマクロをわずかに変更しました。これは誰かに役立つかもしれません。

Sub Swap()

    If Selection.Areas.Count <> 2 Then
         MsgBox "Select 2 cell ranges (only) to swap."
         Exit Sub
    End If


    If Selection.Areas(1).Count <> Selection.Areas(2).Count Then
         MsgBox "The two areas must be of equal size"
         Exit Sub
    End If

    'With this for loop we run through each cell 1 by 1
    For i = 1 To Selection.Areas(1).Count
        'Swapping values
        temp = Selection.Areas(1)(i)
        Selection.Areas(1)(i) = Selection.Areas(2)(i)
        Selection.Areas(2)(i) = temp

        'Swapping color
        tempColor = Selection.Areas(1)(i).DisplayFormat.Interior.Color
        Selection.Areas(1)(i).Interior.Color = Selection.Areas(2)(i).DisplayFormat.Interior.Color
        Selection.Areas(2)(i).Interior.Color = tempColor
    Next i

End Sub
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.