dポイントプレゼントキャンペーン実施中!

お世話になります。
エクセルVBA初心者ですがタイトルのようなことは可能でしょうか?

テンキーで横に入力することが多くタブキーだと離れているため不便です。
またオプションでエンターキーの移動方向を右に設定した場合、ブック全体に反映するため不便です。

複数のシートから一つのシートだけエンターでセルの進む方向が右
といったことVBAでできないものでしょうか?

何卒よろしくお願いいたします。

A 回答 (2件)

こんばんは。



No.1さんがお書きになっていることはこういうことだと思います。
もし、ブックを途中で開いたまま、もうひととつのブックに替えるとなると、これに加えなくてはならないかもしれません。

ThisWorkbook モジュール
'------------------------モジュールの一番上か、Option Explicitが入っていたら、その次の行から。)
Const ShNAME As String = "Sheet2" 'ここでシート名を設定

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.MoveAfterReturnDirection = xlDown
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = ShNAME Then
Application.MoveAfterReturnDirection = xlToRight
End If
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name = ShNAME Then
Application.MoveAfterReturnDirection = xlDown
End If
End Sub

'//
「【エクセルVBA】一部シートのみエンター」の回答画像2
    • good
    • 0
この回答へのお礼

´以降はコメントということでいいんですよね?

今夜は歓迎会なので明日以降やってみます。
ありがとうございました!

お礼日時:2018/09/19 07:37

こんにちは



対象のシートのVBAでリターンキーを検知して、移動方向を制御することも可能ですが、オプションの移動方向そのものを変えてしまった方が簡単かと思います。

移動方向の変更は、Application.MoveAfterReturnDirectionの再設定で可能です。
右方向は、xlToRight。下方向は、xlDownです。
https://docs.microsoft.com/ja-jp/office/vba/api/ …

対象シートの、Worksheet_Activate、 Worksheet_Deactivateイベントで切り替えても良いですが、これだと右方向に設定されたままになってしまう可能性があります。
標準を下方向としておくのであれば、ThisWorkbookモジュールでアクティブシートを監視して必要に応じて移動方向を制御し、BeforeCloseイベントで必ず下方向に戻しておいてあげるという考え方が良さそうに思います。
    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございました!
具体的な手順教えて下さい。
すぐやってみます。

お礼日時:2018/09/18 17:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!