Excel VBA質問箱 IV

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

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


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

【41486】移動先について mori 06/8/12(土) 0:59 質問[未読]
【41488】Re:移動先について Kein 06/8/12(土) 2:17 回答[未読]
【41500】Re:移動先について mori 06/8/12(土) 10:31 質問[未読]
【41502】Re:移動先について ponpon 06/8/12(土) 10:43 発言[未読]
【41503】Re:移動先について mori 06/8/12(土) 10:54 発言[未読]
【41511】Re:移動先について Kein 06/8/12(土) 17:03 発言[未読]
【41512】Re:移動先について Kein 06/8/12(土) 17:06 発言[未読]
【41574】Re:移動先について mori 06/8/14(月) 1:04 お礼[未読]

【41486】移動先について
質問  mori  - 06/8/12(土) 0:59 -

引用なし
パスワード
   教えて下さい。下記移動先のコードにおいて入力後enter確定で
動作しますがenterのみでセル移動できるでしょうか
(入力なしということです。)
エキスパートの皆さんよろしくお願いします。
Private Sub Worksheet_Change(ByVal Target As Range)
  Select Case Target.Column
    Case
      Target.Offset(0, 1).Select    
    Case 9
      Target.Offset(1, -8).Select
  End Select
End Sub

【41488】Re:移動先について
回答  Kein  - 06/8/12(土) 2:17 -

引用なし
パスワード
   [シートモジュール]

Private Sub Worksheet_Activate()
  Application.OnKey "{ENTER}", "Mv_Cell"
End Sub

Private Sub Worksheet_Deactivate()
  Application.OnKey "{ENTER}"
End Sub

[標準モジュール]

Sub Mv_Cell()
  With ActiveCell
   If .Column = 9 Then
     .Offset(1, -8).Select
   Else
     .Offset(, 1).Select
   End If
  End With
End Sub

で、テンキーの ENTER を押したときに動作します。
文字キーのENTERに反応させたければ、"{ENTER}"→"~"に変更して下さい。
   

【41500】Re:移動先について
質問  mori  - 06/8/12(土) 10:31 -

引用なし
パスワード
   ▼Kein さん:
>[シートモジュール]
>
>Private Sub Worksheet_Activate()
>  Application.OnKey "{ENTER}", "Mv_Cell"
>End Sub
>
>Private Sub Worksheet_Deactivate()
>  Application.OnKey "{ENTER}"
>End Sub
>
>[標準モジュール]
>
>Sub Mv_Cell()
>  With ActiveCell
>   If .Column = 9 Then
>     .Offset(1, -8).Select
>   Else
>     .Offset(, 1).Select
>   End If
>  End With
>End Sub
>
>で、テンキーの ENTER を押したときに動作します。
>文字キーのENTERに反応させたければ、"{ENTER}"→"~"に変更して下さい。
>   
keinさん返事回答ありがとうございます
上記の通りコピペして実行しましたがテンキーenterで
リターン出来ませんでした原因わかりますか?
よろしくお願いします。

【41502】Re:移動先について
発言  ponpon  - 06/8/12(土) 10:43 -

引用なし
パスワード
   Keinさんではありませんが、
こちらノートのため"{ENTER}"を"~"に変えて実行していますが、ちゃんと
動いていますよ。
シートを選択し直して実行したどうでしょう

【41503】Re:移動先について
発言  mori  - 06/8/12(土) 10:54 -

引用なし
パスワード
   ▼ponpon さん:
>Keinさんではありませんが、
>こちらノートのため"{ENTER}"を"~"に変えて実行していますが、ちゃんと
>動いていますよ。
>シートを選択し直して実行したどうでしょう
ponpon さん
返事ありがとうございます。
別のPCでもダメでした
PCの機種に関係あるのでしょうか?

【41511】Re:移動先について
発言  Kein  - 06/8/12(土) 17:03 -

引用なし
パスワード
   >シートを選択し直して
というアドバイスについては、理解されてますか ?
WorksheetのActiveイベントマクロは、シートモジュールに入れた後に
「一度他のシートを開いてからそのシートに戻る」ことによってセット
されます。同様に「そのセットを解除するためには他のシートを開く」
ことになりますが、もしブックの作業終了時にマクロを入れている
シートを開いたままだと、それ以降に他のブックを開いて使うときも
セットが解除されません。よって OnKey プロパティでキーに割り当てた
マクロが見つからない、というようなエラーが出てくるのを回避するため、 ThisWorkookモジュール にも

Private Sub Workbook_BeforeClose(ByVal Cancel As Boolean)
  Application.OnKey "{ENTER}"
End Sub

を、入れておいて下さい。

【41512】Re:移動先について
発言  Kein  - 06/8/12(土) 17:06 -

引用なし
パスワード
   捕捉。
>そのセットを解除するためには他のシートを開く
は、もちろん Deactiveイベント の処理をセットするためです。
Activeイベントによるセットが、Deactiveイベントを書かずに
いても自動的に解除されるわけではありません。念の為。

【41574】Re:移動先について
お礼  mori  - 06/8/14(月) 1:04 -

引用なし
パスワード
   ▼Kein さん:
>捕捉。
>>そのセットを解除するためには他のシートを開く
>は、もちろん Deactiveイベント の処理をセットするためです。
>Activeイベントによるセットが、Deactiveイベントを書かずに
>いても自動的に解除されるわけではありません。念の為。
返事遅くなりすみません
keinさん・ponponさんお騒がせしました
無事にうまくできました。
ありがとうございました。

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