|
▼BONO さん:
>Sub セル移動()
>
> If ActiveCell.Address = "$B$2" Then
> Range("B4").Select
> ElseIf ActiveCell.Address = "$B$4" Then
> Range("D2").Select
> ElseIf ActiveCell.Address = "$D$2" Then
> Range("D4").Select
>
> End If
>
>End Sub
>
>
>-----------------------------------------------------------------------
>
>私は、B2→B4→D2→D4→・・・というように、エンターを押した際にセルを移動させたいと思っております。しかし、これが結構な数です。BX4くらいまで行きます。
Sub セル移動()
With ActiveCell
.Offset(-(.Row * 2 - 6), .Row - 2).Select
End With
End Sub
に変えてみてください。
2行目の時:-(.Row * 2 - 6)→ -(2 * 2 - 6)→ -(4 - 6)→ -(-2)→ 2
:.Row - 2 → 2 - 2 → 0
.Offset(-(.Row * 2 - 6), .Row - 2).Select
→.Offset(2, 0).Select
4行目の時:-(.Row * 2 - 6)→ -(4 * 2 - 6)→ -(8 - 6)→ -(2)→ -2
:.Row - 2 → 4 - 2 → 2
.Offset(-(.Row * 2 - 6), .Row - 2).Select
→.Offset(-2, 2).Select
>同じ所に記述したら、動作しませんでした。なんかエラーが出ました。
同じ所ってどこですか?エラーってなんですか?
>『ActiveCell.Address = "$B$2" Then 』のように、$をなぜ常に付けなければならないのでしょうか?試しに、外したら動作しませんでした。
MsgBox ActiveCell.Address
MsgBox ActiveCell.Address(False, False)
MsgBox ActiveCell.Address(True, False)
MsgBox ActiveCell.Address(False, True)
を実行してみればわかるかと。
>このセル指定に、変数は使えないのでしょうか?
Dim Before As String
Dim After As String
Before = "$B$2"
After = "B4"
If ActiveCell.Address = Before Then
Range(After).Select
てなこと?
|
|