|
▼ユニフ さん:
こんばんは。
>セル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
|
|