Excel VBA質問箱 IV

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

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


3112 / 13644 ツリー ←次へ | 前へ→

【64184】アクティブセルの移動について らぶ 10/1/23(土) 21:07 質問[未読]
【64185】Re:アクティブセルの移動について n 10/1/23(土) 21:43 発言[未読]
【64186】Re:アクティブセルの移動について らぶ 10/1/24(日) 0:16 質問[未読]
【64187】Re:アクティブセルの移動について UO3 10/1/24(日) 1:13 回答[未読]
【64188】Re:アクティブセルの移動について らぶ 10/1/24(日) 2:22 お礼[未読]

【64184】アクティブセルの移動について
質問  らぶ  - 10/1/23(土) 21:07 -

引用なし
パスワード
    初めて質問させてもらいます。

今、不特定のセルをアクティブにして、コマンドボタンでデータを入れるとデータ入れたセルの次の行のセルに移動するようにしてます。
 コードはこんな感じです。
  Private Sub CB1_Click()
  If ActiveCell = "" Then
   ActiveCell = "誤"
  End If
    ActiveCell.Offset(1).Select
次の事をしたいのですが、どんな感じでしたら良いかわかりません。
今のコードに続けて、ある列の10行目と24行目にデータ入れた時だけ、それぞれ今アクティブになっている列の次の列1行目と15行目にセルを移動したい。
他の時は次の行のままで

たとえば、A10にデータを入れるとB1に、C24にデータを入れるとD15にとセルを移動

わかる範囲で考えたのですがうまくいきません。
  If ActiveCell = Cells(25) Then
    ActiveCell.Offset(-10, 1).Select
  Else
   ActiveCell.Select
  End If

解りにくい説明と思いますがご教示していただければと思います。
よろしくお願いします。

【64185】Re:アクティブセルの移動について
発言  n  - 10/1/23(土) 21:43 -

引用なし
パスワード
   ActiveCell.Row で ActiveCellの行が取れます。
それで判断させてください。
10か24だったら行方向のOffsetは(-10じゃなくて)-9で、
それ以外は+1。

【64186】Re:アクティブセルの移動について
質問  らぶ  - 10/1/24(日) 0:16 -

引用なし
パスワード
   ▼n さん:
>ActiveCell.Row で ActiveCellの行が取れます。
>それで判断させてください。
>10か24だったら行方向のOffsetは(-10じゃなくて)-9で、
>それ以外は+1。

見ていただきありがとうございます。
早速ご教示いただいたのをやってみました。

Private Sub CB1_Click()
If ActiveCell = "" Then
ActiveCell = "誤"
End If
  ActiveCell.Offset(1).Select
If ActiveCell.Row Then
 ActiveCell.Offset(-9, 1).Select
Else
ActiveCell.Offset(1).Select
 End If
End Sub

こんな感じです。

移動するようにはなったのですが、やはり説明不足のようです。
もう少し説明すると
1行目から初めて
  1行目のときは2行目をSelect
  2行目のときは3行目をSelect
  3行目のときは4行目をSelect と9行目続けていき
10行目にきた時だけ次の列の1行目をSelectしたいです。
同様に15行目から初めて
  15行目のときは16行目をSelect
  17行目のときは18行目をSelect
  19行目のときは20行目をSelect と24行目続けていき
25行目にきた時だけ次の列の15行目をSelectしたいです。

【64187】Re:アクティブセルの移動について
回答  UO3  - 10/1/24(日) 1:13 -

引用なし
パスワード
   ▼らぶ さん:

あまりスマートなコードじゃないですけど以下で
らぶさんの仕様は一応満たすと思います。
(ただし、ActiveCellが10行目〜14行目および25行目以降には
 ないという前提の手抜きコードですが)

Private Sub CB1_Click()
Dim r As Long
Dim c As Long

 r = ActiveCell.Row
 c = ActiveCell.Column

 If ActiveCell.Value = "" Then ActiveCell.Value = "誤"
 
 Select Case ActiveCell.Row
 
  Case 9
  
    r = 1
    c = c + 1
   
  Case 24
  
    r = 15
    c = c + 1
    
  Case Else
    
    r = r + 1
    
 End Select
  
 Cells(r, c).Activate
  
End Sub

【64188】Re:アクティブセルの移動について
お礼  らぶ  - 10/1/24(日) 2:22 -

引用なし
パスワード
   ▼n さん:
▼UO3 さん:
貴重なご教示また時間を取っていただきありがとうございます。
 思っていた通りにセルが移動したのでうれしいです。
他に見た方がいればありがとうございます。
またわからない時は質問しますので、その時はご教示お願いします。
  ありがとうございました。

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