| 
    
     |  | ▼ユニフ さん: こんばんは。
 
 
 >セルA1に(りんご)、セルB1に(ばなな)と書いてあります。
 >このりんごとばななの文字の交換に
 >
 >Sub test()
 >Range("C1").Value = Range("A1").Value
 >Range("A1").Value = Range("B1").Value
 >Range("B1").Value = Range("C1").Value
 >Range("C1").ClearContents
 >End Sub
 >
 >という順送りの方法を使っていますが、これを
 >
 >Sub test()
 >セルA1の値とセルB1の値を交換する
 >End Sub
 >
 >のように一行でこなせるコードはありますでしょうか?
 昔のBasicには、Swapというステートメントがありましたけどねえ!!
 
 方法としては、ユニフ さんの提示されたロジックが簡単ですよ
 但し、テンポラリエリアに別のセル(C1)を使う必要はないですよね!!
 
 '==========================
 Sub main()
 Dim a1 As Range, b1 As Range
 Set a1 = Range("a1")
 a1.Value = "りんご"
 Set b1 = Range("b1")
 b1.Value = "バナナ"
 MsgBox "ok"
 Call swap(a1, b1)
 End Sub
 '============================
 Sub swap(ByVal x1 As Range, ByVal x2 As Range)
 Dim tmp As Variant
 tmp = x1.Value
 x1.Value = x2.Value
 x2.Value = tmp
 End Sub
 
 
 |  |