|
こんばんわ。
入れ替えるといっても、データだけなのか、書式も入れ替えるのか、
数式が入ってた場合は???・・・とか、
交換対象のセル同士の大きさのチェックとか結合セルの取り扱いとか・・・
なんて考えていくと実は結構面倒なんです(^^;;
単に同一シート内の単独セル同士のセル値のみを入れ替えるんやったら、こんなんかな?
Sub test()
Dim TempValue As Variant
If TypeName(Selection) = "Range" Then
With Selection
If .Areas.Count = 2 Then
If .Areas(1).Cells.Count + .Areas(2).Cells.Count = 2 Then
TempValue = .Areas(1).Value
.Areas(1).Value = .Areas(2).Value
.Areas(2).Value = TempValue
End If
End If
End With
End If
End Sub
ただし、このコードでは数式が入ってたら値変換されます。
数式の場合は絶対参照/相対参照のどっちでいくんか?ってことにも配慮する必要があります。
アドインでよければ拙作の「Tool★彡」に「セル交換」機能がついてるんで
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=101;id=FAQ
いっぺん試してみておくれやす。
ほな。
|
|