Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


52764 / 76736 ←次へ | 前へ→

【28802】Re:Enterキーで指定したセルへ移動
発言  [名前なし]  - 05/9/15(木) 0:56 -

引用なし
パスワード
   ▼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

てなこと?

0 hits

【28800】Enterキーで指定したセルへ移動 BONO 05/9/14(水) 23:30 質問
【28802】Re:Enterキーで指定したセルへ移動 [名前なし] 05/9/15(木) 0:56 発言
【28832】Re:Enterキーで指定したセルへ移動 BONO 05/9/15(木) 20:36 お礼

52764 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free