アダムは2つのセルの内容を交換する必要があり、3段階の移動を行わずにそれを行う方法があるかどうか疑問に思います。

2つのセルが相互にどのように配置されているかに応じて、実際にはこのタスクを実行する方法がいくつかあります。 2つのセルが隣接している場合は、マウスを使用してスワップを行うことができます。

最初のセル(たとえば、セルC3)を選択します。次に、Shiftキーを押しながら、スワップ先のセル(たとえば、セルD3)上でセルの端の1つをドラッグします。これには少し練習が必要ですが、スワップするセルの周りでマウスポインターを動かすと、スワップが発生する場所を示す「重い」マーカーが表示されます。

実際には、元のセル(C3)を移動する場所を指定しているということです。セルD3と交換するため、セルD3の右側に重いマーカーが表示されるまでShiftキーを押し続けます。 (図1を参照)

image

図1.「重い」マーカーは、元のセルがコピーされる場所を示します。

元のセルが右に移動されているため、セルD3は左に移動して、セルC3があった場所を埋めます。その結果、セルC3とD3が交換されます。

マウスとキーボードを一緒に使用したくない場合は、次の手順が少し簡単になることがあります。

。交換する右端のセル(この場合はセルD3)を選択します。

。 Ctrl + Xを押します。これにより、セルがクリップボードに切り取られ、セルD3の周りに「アリの行進」が表示されます。

。交換する左端のセル(この場合はセルC3)を選択します。

。 Ctrl ++を押します(これは、Ctrl + Ctrl + =を押すのと同じ、Ctrlとプラス記号です)。

隣接するセルを交換する3番目の方法は、それらの2つを選択してから、Excelの並べ替え機能を使用して、選択した2つのセルだけを並べ替えることです。昇順または降順の並べ替えを試す必要があるかもしれませんが、最終的には目的の順序でセルを取得できるはずです。

セルが互いに隣接していない場合は、マクロを使用してスワッピングを行う必要があります。次のマクロは、2つの隣接していないセルまたは2つの隣接するセルを交換します。それは問題ではありません。

Sub SwapCells()

Dim sHolder As String

If Selection.Cells.Count = 2 Then         With Selection             sHolder = .Cells(1).Formula             If .Areas.Count = 2 Then  ' Cells selected using Ctrl key                 .Areas(1).Formula = .Areas(2).Formula                 .Areas(2).Formula = sHolder             Else                      ' Adjacent cells are selected                 .Cells(1).Formula = .Cells(2).Formula                 .Cells(2).Formula = sHolder             End If         End With     Else         MsgBox "Select only TWO cells to swap", vbCritical     End If End Sub

マクロはセル内の内容のみを交換し、セルのフォーマットは交換しないことに注意してください。 (隣接するセルで使用するための以前のマウスとキーボードのアプローチでは、セルの内容だけでなくフォーマットも交換されました。)

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(1664)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。