[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定の列だけセルが右へ移動する』(比良)
通常はエンターキーを押すと,セルが下へ移動しますが
A列からE列でエンターキーを押した場合だけ,セルが右へ移動する そして,E列でエンターキーを押した場合は,セルがA列の次の行に移る たとえば,E1セルでエンターキーを押すと,セルがA2セルに移動する
という設定を,マクロで行いたいのですが,どうなりますでしょうか。 ご教示願います。
オプション設定でエンターキーを押した後にセルを移動する、を下から右に変更して 編集したいA列の始点からE列の最後までを選択 これで臨むことは出来ますが、ダメですかね?
マクロの場合、間違ったから戻したいってことができなくなっちゃいますけど・・・ (稲葉) 2013/10/23(水) 08:41
Tabキーとの併用でもご希望の事ができますが、それを踏まえてマクロ希望と言う事ですか?
( コナミ) 2013/10/23(水) 08:58
ありがとうございます。
Private Sub auto open などを利用して,ファイルを開くと自動的に設定される
というふうにしたいのですが。 よろしくお願いします。
(比良) 2013/10/23(水) 11:32
案1 エンターキーにイベントを入れる方法
'//ThisWorkbookモジュールに追加 Private Sub Workbook_Open() With ThisWorkbook.Worksheets(SN) .OnSheetActivate = "'SetKey 1'" .OnSheetDeactivate = "'SetKey 0'" End With End Sub
'//標準モジュールに追加 Public Const SN = "Sheet1" '//対象のシート名を記述 Sub SetEnter() Dim r As Long Dim c As Long If ActiveSheet.Name <> SN Then Exit Sub Application.EnableEvents = False Select Case True Case Not Intersect(ActiveCell, Range("A1:D100")) Is Nothing r = 0: c = 1 Case Not Intersect(ActiveCell, Range("E1:E100")) Is Nothing r = 1: c = -4 Case Else r = 1: c = 0 End Select ActiveCell.Offset(r, c).Select Application.EnableEvents = True End Sub Sub SetKey(n As Long) Dim M As String M = "SetEnter" Application.EnableEvents = False With Application Select Case n Case 1 .OnKey "{Enter}", M .OnKey "~", M Case 0 .OnKey "{Enter}" .OnKey "~" End Select End With Application.EnableEvents = True End Sub
案2 シートモジュールにselectionchangeイベントを入れる方法 但し、F列が使えなくなる Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim App As Object Set App = Application App.EnableEvents = False Select Case True Case Not Intersect(Target, Range("A1:E100")) Is Nothing App.MoveAfterReturnDirection = xlToRight Case Not Intersect(Target, Range("F1:F100")) Is Nothing Cells(Target.Row + 1, "A").Select Case Else App.MoveAfterReturnDirection = xlDown End Select App.EnableEvents = True End Sub (稲葉) 2013/10/23(水) 11:37
どうもありがとうございます。 いろいろ試してみましたが,以下の理由で,ほかの案はありませんか?
※このマクロを使いたいファイルには,別のマクロが多数,設定されております。 それで,上記両案とも,単体ではうまく動きますが,別のマクロも並存するところでは,うまく動かないのです。 ほかのマクロが多数ありまして,どのマクロが影響しているのか,よく分かりませんが。
※案1 別のマクロの影響かと思いますが,E列でエンターキーを押すと,セルがA列の次の行に移らず,C列の次の行に移ってしまいます。 単体で試すと,ちゃんとA列の次の行に移ります。
※案2 右クリックして,コピー貼り付けが機能しません。 あと,F列にも入力したいです。 あと,別のマクロの動きがおかしくなりました。
すみませんが,何かいい案がありましたら,お教え願います。
(比良) 2013/11/06(水) 15:25
F列が選択できなくなってもOKなら
シートモジュールへ
Private Sub Worksheet_Deactivate() Application.MoveAfterReturnDirection = xlDown End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False If Not Intersect(Target, Columns("f")) Is Nothing Then Target(2, -4).Activate ElseIf Not Intersect(Target, Columns("a:e")) Is Nothing Then Application.MoveAfterReturnDirection = xlToRight Else Application.MoveAfterReturnDirection = xlDown End If Application.EnableEvents = True End Sub (seiya) 2013/11/06(水) 15:51
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.